样式
- 样式类比于Html中的css,可以批量对元素进行相关属性的设置
- 每个UI元素都可以有Style的属性,也可以统一放到Resources中
创建样式其值如下
<Window.Resources><Style x:Key="123" TargetType="TextBlock"><Setter Property="FontSize" Value="20"></Setter><Setter Property="MaxHeight" Value="100"></Setter><Setter Property="VerticalAlignment" Value="Center"></Setter><Setter Property="TextAlignment" Value="Center"></Setter><Setter Property="MaxWidth" Value="100"></Setter><Setter Property="Background" Value="Red"></Setter><Setter Property="Foreground" Value="Yellow"></Setter></Style></Window.Resources><Grid><TextBlock Style="{DynamicResource 123}">123</TextBlock></Grid>
样式的重要属性
简单的触发器,当某个属性值为真是,改变相关的属性值
<Style.Triggers><Trigger Property="IsMouseOver" Value="True"><Setter Property="Background" Value="SkyBlue"></Setter></Trigger></Style.Triggers>
事件触发器,当某个值为真是,触发相关动画效果
<EventTrigger RoutedEvent="Mouse.MouseEnter"><EventTrigger.Actions><BeginStoryboard x:Name="testBgin"><Storyboard><DoubleAnimation Duration="0:0:0.5" To="30" Storyboard.TargetProperty="FontSize"></DoubleAnimation></Storyboard></BeginStoryboard></EventTrigger.Actions></EventTrigger>
行为
行为不是WPF中自带的,而是来源于Blend设计,其作用是对元素的行为进行封装,例如:拖动,最大,最小化等动作。需要引用的dll包括:System.Windows.Interactivity.dll 或Microsoft.Expression.Interaction.dll
创建行为
public class DragBehavior : Behavior<UIElement>{AssociatedObject // 重要对象,即操作的对象protected override void OnAttached(){}// 重写方法,主要是绑定相关的事件protected override void OnDetaching(){}// 重写方法,主要为减除相关的事件绑定}
使用行为
- 添加名称控件
xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity" - 针对相关元素使用行为
<Canvas Grid.Row="1"><Ellipse Canvas.Left="10" Canvas.Top="70" Fill="Yellow" Width="80" Height="60"><i:Interaction.Behaviors><local:DragBehavior></local:DragBehavior></i:Interaction.Behaviors></Ellipse></Canvas>
- 添加名称控件
