1. 首先建2个样式
<Style x:Key="SnapStartCommandButtonStyle" TargetType="{x:Type ToggleButton}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ToggleButton}">
<StackPanel Orientation="Vertical" Background="Transparent" Margin="0,0,0,0" >
<Image x:Name="ProgressImage" Source="/Custom;component/Images/snapStart1.png" Stretch="Fill"/>
</StackPanel>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Source" Value="/Custom;component/Images/snapStart2.png" TargetName="ProgressImage"/>
</Trigger>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="Source" Value="/Custom;component/Images/snapStart1.png" TargetName="ProgressImage"/>
</Trigger>
<Trigger Property="IsChecked" Value="True">
<Setter Property="Source" Value="/Custom;component/Images/snapStart2.png" TargetName="ProgressImage"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style x:Key="StackStartCommandButtonStyle" TargetType="{x:Type ToggleButton}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ToggleButton}">
<StackPanel Orientation="Vertical" Background="Transparent" Margin="0,0,0,0" >
<Image x:Name="ProgressImage" Source="/;component/Images/stackStart1.png" Stretch="Fill"/>
</StackPanel>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Source" Value="/;component/Images/stackStart2.png" TargetName="ProgressImage"/>
</Trigger>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="Source" Value="/;component/Images/stackStart1.png" TargetName="ProgressImage"/>
</Trigger>
<Trigger Property="IsChecked" Value="True">
<Setter Property="Source" Value="/;component/Images/stackStart2.png" TargetName="ProgressImage"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
2. 代码里替换
button.SetResourceReference(Button.StyleProperty,
"SnapStartCommandButtonStyle");
button.SetResourceReference(Button.StyleProperty,
"StackStartCommandButtonStyle");
文章详细描述了如何在XAML中创建两种不同状态的按钮样式,SnapStartCommandButtonStyle和StackStartCommandButtonStyle,通过`SetResourceReference`方法应用到ToggleButton上。
1461

被折叠的 条评论
为什么被折叠?



