下面我会详细讲解如何在WPF基础控件上显示Loading等待动画的完整攻略。
使用WPF Toolkit自带的Loading动画
WPF Toolkit是一个由Microsoft约定和支持的开源项目,该项目包含了一些方便的控件和工具。其中就包含了Loading动画的控件。
第一步:引入WPF Toolkit
首先要引入WPF Toolkit,可以通过NuGet来引入。在Visual Studio中,右键解决方案,选择“管理NuGet程序包”,搜索框中输入“WPF Toolkit”,安装WPF Toolkit包后,项目中就可以使用Toolkit提供的控件了。
第二步:使用Loading动画
在XAML代码中使用BusyIndicator
控件,将需要显示Loading的控件嵌套到其中即可。
<Controls:BusyIndicator IsBusy="True" DisplayAfter="0" BusyContent="Loading...">
<Button Content="Click me!" />
</Controls:BusyIndicator>
IsBusy
属性控制Loading动画是否展示,BusyContent
属性控制Loading的文字提示内容,DisplayAfter
属性控制Loading何时开始展示,单位为毫秒。
使用第三方Loading动画库
除了使用WPF Toolkit中自带的Loading动画,还可以使用第三方动画库来实现。下面介绍一个使用MahApps.Metro库实现Loading动画的例子。
第一步:引入MahApps.Metro库
相比WPF Toolkit,MahApps.Metro还提供了许多其他的控件和工具,包括常用的窗口、菜单、按钮等。我们可以在Visual Studio中通过NuGet来安装MahApps.Metro库。
第二步:使用Loading动画
MahApps.Metro提供的等待动画控件是ProgressRing
,需要将其嵌套到需要展示等待动画的控件中。下面的例子展示了如何在Button
控件上展示等待动画。
<Button Height="50" Width="100" Content="Click me!" Click="Button_Click">
<Button.Style>
<Style TargetType="Button">
<Setter Property="IsEnabled" Value="True" />
<Style.Triggers>
<DataTrigger Binding="{Binding Path=IsLoading}" Value="True">
<Setter Property="IsEnabled" Value="False" />
</DataTrigger>
</Style.Triggers>
</Style>
</Button.Style>
<mahApps:ProgressRing IsActive="{Binding Path=IsLoading}" Foreground="White" Width="20" Height="20" Margin="10" />
</Button>
ProgressRing
控件的IsActive
属性可以控制Loading动画的显示与隐藏,通过绑定IsLoading
属性来控制。
以上是使用WPF Toolkit自带Loading动画和MahApps.Metro实现Loading动画的两个示例,希望能对你有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解WPF如何在基础控件上显示Loading等待动画 - Python技术站