样式
- 样式类比于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>
- 添加名称控件