- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
第
WPF实现在控件上显示Loading等待动画的方法详解
WPF如何在控件上显示Loading等待动画
框架使用.NET40;VisualStudio2025;使用方式需引入命名空间后设置控件的附加属性wd:Loading.IsShow=true,即可显示默认等待动画效果如下:
如需自定义Loading一定要先设置wd:Loading.Child在设置IsShow=true。显示不同Loading内容需wd:Loading.Child={x:Staticwd:NormalLoading.Default}进行复赋值显示NormalLoading效果如下:
Github[2]
Githubxaml[3]
Gitee[4]
Giteexaml[5]
实现代码
也可以自定义Loading动画如下:
1、自定义控件CustomLoading。
public?class?CustomLoading?:?Control
????{
????????public?static?CustomLoading?Default?=?new?CustomLoading();
????????static?CustomLoading()
????????{
????????????DefaultStyleKeyProperty.OverrideMetadata(typeof(CustomLoading),
????????????????new?FrameworkPropertyMetadata(typeof(CustomLoading)));
????????}
????}
2、编写CustomLoading.xaml代码如下。
StyleTargetType={x:Typecontrols:CustomLoading}
SetterProperty=WidthValue=40/
SetterProperty=HeightValue=40/
SetterProperty=Template
Setter.Value
ControlTemplateTargetType={x:Typecontrols:CustomLoading}
!--此处编写自定义的动画逻辑--
/ControlTemplate
/Setter.Value
/Setter
/Style
1)创建装饰AdornerContainer代码如下:
using?System.Windows;
using?System.Windows.Documents;
using?System.Windows.Media;
namespace?WPFDevelopers.Utilities
????public?class?AdornerContainer?:?Adorner
????{
????????private?UIElement?_child;
????????public?AdornerContainer(UIElement?adornedElement)?:?base(adornedElement)
????????{
????????}
????????public?UIElement?Child
????????{
????????????get?=?_child;
????????????set
????????????{
????????????????if?(value?==?null)
????????????????{
????????????????????RemoveVisualChild(_child);
????????????????????_child?=?value;
????????????????????return;
????????????????}
????????????????AddVisualChild(value);
????????????????_child?=?value;
????????????}
????????}
????????protected?override?int?VisualChildrenCount
????????{
????????????get
????????????{
????????????????return?_child?!=?null??1?:?0;
????????????}
????????}
????????protected?override?Size?
文档评论(0)