私はまだWPFを初めて使用しています(最初のアプリを作成しています)が、基本的には、3つの画像(アイドル、ホバー、onClick)を持つある種のコントロールを作成したい(または作成したいと考えています)が、画像を変更できます. だから今私は持っています:
<Rectangle Height="29" Width="35" Margin="0,2,0,0"
HorizontalAlignment="Left" VerticalAlignment="Top"
Name="BTN_OpenDeviceSettings" ToolTip="Open Device Settings"
Fill="{DynamicResource device_grid___open_grid}"
MouseEnter="BTN_OpenDeviceSettings_MouseEnter"
MouseLeave="BTN_OpenDeviceSettings_MouseLeave"
MouseLeftButtonDown="BTN_OpenDeviceSettings_MouseLeftButtonDown"
MouseLeftButtonUp="BTN_OpenDeviceSettings_MouseLeftButtonUp">
</Rectangle>
そして、それはうまく機能します。しかし、グラフィックをコードから分離したいので、これを機能させるために、C# コードで塗りつぶし画像を手動で交換します。私は次のようなコードを見てきました:
<Button Name="btnNext" Padding="15,3" HorizontalAlignment="Right" Click="OnButtonClick">
<Image Width="90" Height="90">
<Image.Style>
<Style TargetType="Image">
<Setter Property="Source" Value="/resources/a.png" />
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Source" Value="/resources/b.png" />
</Trigger>
</Style.Triggers>
</Style>
</Image.Style>
</Image>
</Button>
だから私はそれが私が望んでいるものだと思います。しかし、理想的には、これらのボタンをたくさん用意するつもりなので、これを行うための何かを作成できます:
<MyButton>
<Images idleImage="someimage.png" hoverImage="someOtherImage.png" clickImage="someOtherOtherImage.png" onCLick="some_cSharp_method_to_call" />
</MyButton>