模板改写规范示例:直接写在控件之中的样式规范;
改写Button模板,绿色部分固定的; 紫色部分是改写模板View;红色部分是模板触发器(数据触发器)
<Button Width="30" Height="30">
<Button.Style>
<Style TargetType="Button">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Viewbox Width="30" Height="30">//模板改写
</Viewbox>
<ControlTemplate.Triggers>//模板触发器
<DataTrigger Binding="{Binding IsActive}" Value="true">//绑定属性IsActive 触发 数据触发器
<DataTrigger.EnterActions>
<BeginStoryboard x:Name="sb">
<Storyboard >
<DoubleAnimation RepeatBehavior="Forever" Storyboard.TargetName="imageRefresh" Storyboard.TargetProperty="Angle" To="360" Duration="0:0:3"/>
</Storyboard>
</BeginStoryboard>
</DataTrigger.EnterActions>
<DataTrigger.ExitActions>
<StopStoryboard BeginStoryboardName="sb"/>
</DataTrigger.ExitActions>
</DataTrigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</Button.Style>
</Button>
**************************************************************************************************************
控件触发器模板:Border 的IsMouseOver属性触发器
<Border Margin="10,0" >
<Image Width="32" Height="32" Stretch="Uniform" Source="Pack://application:,,,/RealStomach_WPF;component/Resources/Other/into.png"
cal:Message.Attach="[Event MouseLeftButtonUp] = [Action Enter_Application($view, $eventArgs)]"/>
<Border.Style>
<Style TargetType="Border">
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="BorderBrush" Value="LightBlue"/>
</Trigger>
</Style.Triggers>
</Style>
</Border.Style>
</Border
标红的部分是固定的格式
<Border Margin="10,0" >
<Image />
<Border.Style>
<Style TargetType="Border">
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="BorderBrush" Value="LightBlue"/>
</Trigger>
</Style.Triggers>
</Style>
</Border.Style>
</Border>
**************************************************************************************************************