易采站长站为您分析超炫酷的WPF实现Loading控件效果,感兴趣的小伙伴们可以参考一下
Win8系统的Loading效果还是很不错的,网上也有人用CSS3等技术实现,研究了一下,并打算用WPF自定义一个Loading控件实现类似的效果,并可以让用户对Loading的颗粒(Particle)背景颜色进行自定义,话不多说,直接上代码:
1、用VS2012新建一个WPF的用户控件库项目WpfControlLibraryDemo,VS自动生成如下结构:

2、删除UserControl1.xaml,并新建一个Loading的CustomControl(不是UserControl),如下图所示:

3、如果报错找不到Loading类型,请编译,下面在Generic.xaml主题文件中对Loading的样式和内容进行定义(注意添加
- xmlns:system = "clr-namespace:System;assembly=mscorlib"),代码如下: <ResourceDictionary
- xmlns="http://www.easck.com/winfx/2006/xaml/presentation" xmlns:x="http://www.easck.com/winfx/2006/xaml"
- xmlns:system = "clr-namespace:System;assembly=mscorlib" xmlns:local="clr-namespace:WpfControlLibraryDemo">
- <Style TargetType="{x:Type local:Loading}"> <Setter Property="Template">
- <Setter.Value> <ControlTemplate TargetType="{x:Type local:Loading}">
- <Border Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}"
- BorderThickness="{TemplateBinding BorderThickness}"> <Grid Width = "50" Height = "50">
- <Grid.Resources> <!-- Value Converters -->
- <!-- Particle Styling ,must to has RelativeSource -->
- <SolidColorBrush x:Key = "ParticleColor" Color = "{Binding Path=FillColor,RelativeSource={RelativeSource TemplatedParent}}" /> <SolidColorBrush x:Key = "ParticleBackgroundColor" Color = "Transparent"/>










