WPFにおけるButtonの4つの状態

17146 ワード

WPFでButtonを使用する場合、buttonをマウスのいくつかの状態に応答させる必要がある場合があります.それ自体にも応答の処理がありますが、その上に画像を貼りたい場合があります.いくつかの状態では、状態に応じて画像を切り替えることができます.ここではリソース辞書を使用しています
類似:
 1 <Style x:Key="ButtonStyle34" TargetType="{x:Type Button}">
2 <Setter Property="Template">
3 <Setter.Value>
4 <ControlTemplate TargetType="{x:Type Button}">
5 <StackPanel Orientation="Horizontal" Background="Transparent" Margin="0,0,0,0" >
6 <Image Name="ImgBtnBg3" Margin="0,0,0,2" Source="/Resources/Res/Delete_I.png" Stretch="Fill" Width="54"/>
7 </StackPanel>
8 <ControlTemplate.Triggers>
9 <Trigger Property="IsMouseOver" Value="True">
10 <Setter Property="Source" Value="/Resources/Res/Geng_II.png" TargetName="ImgBtnBg3"/>
11 </Trigger>
12 <Trigger Property="IsPressed" Value="True">
13 <Setter Property="Source" Value="/Resources/Res/Geng_III.png" TargetName="ImgBtnBg3"/>
14 </Trigger>
15 <Trigger Property="IsEnabled" Value="False">
16 <Setter Property="Source" Value="/Resources/Res/Delete_I.png" TargetName="ImgBtnBg3"/>
17 </Trigger>
18 </ControlTemplate.Triggers>
19 </ControlTemplate>
20 </Setter.Value>
21 </Setter>
22
23 </Style>

ページ:
<Button Style="{DynamicResource ButtonStyle34}" >

Buttonだけではなく、TabControlのTabItemのような多くのコントロールができます.基本的にはリソース辞書とbuttonのように
 <Style x:Key="TabItemStyle6" TargetType="{x:Type TabItem}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type TabItem}">
<StackPanel Orientation="Horizontal" Margin="0,0,0,0" >
<Image Name="ImgBtnBg3" Source="/Resources/VLCIcon/RssIcon/LocalPlay_I.png" Stretch="Fill" Width="144"/>
</StackPanel>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Source" Value="/Resources/VLCIcon/RssIcon/LocalPlay_II.png" TargetName="ImgBtnBg3"/>
</Trigger>
<Trigger Property="IsSelected" Value="True">
<Setter Property="Source" Value="/Resources/VLCIcon/RssIcon/LocalPlay_III.png" TargetName="ImgBtnBg3"/>
</Trigger>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="Source" Value="/Resources/VLCIcon/RssIcon/LocalPlay_III.png" TargetName="ImgBtnBg3"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>

ページ
<TabItem Header="Tab1" Style="{DynamicResourceTabItemStyle6}" >