私のアプリケーションでは、プロパティImageButton
を指定するコントロールを定義しました。ImageSource
これは次のようなスタイルです。
<Style TargetType="{x:Type controls:ImageButton}">
<Setter Property="ForceCursor" Value="True" />
<Setter Property="Cursor" Value="Hand" />
<Setter Property="ToolTip" Value="{Binding Path=Caption, RelativeSource={RelativeSource Mode=Self}}" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type controls:ImageButton}">
<Image Width="16" Height="16" Source="{Binding Path=ImageSource, RelativeSource={RelativeSource Mode=TemplatedParent}}" Name="image" />
<ControlTemplate.Triggers>
<Trigger Property="IsEnabled" Value="False">
<Setter TargetName="image" Property="Opacity" Value="0.3" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
ただし、特定のセットを持つすべてのButton
オブジェクトに同じ画像を使用する場合は、使用する画像がアプリケーションのリソースとして含まれている場合に使用するStyle
だけで済みます。<Image Source="pack://application:,,,/My.Assembly.Name;component/Icons/revert.png" />
Template