|
やり方はいろいろありますが、簡単には添付プロパティを定義するとか。
public class ImageButton {
public static DependencyProperty NormalImageProperty = DependencyProperty.RegisterAttached(略)
public static DependencyProperty ClickImageProperty = DependencyProperty.RegisterAttached(略)
// Get, Set略
}
<Button local:ImageButton.NormalImage="a.png" local:ImageButton.ClickImage="b.png"></Button>
<ControlTemplate TargetType="Button">
<Image x:Image="Image">
<Image.Style>
<Style TargetType="Image">
<Setter Property="Source"
Value="{Binding (local:ImageButton.NormalImage),
RelativeSource={RelativeSource TemplatedParent}}"/>
<ControlTemplate.Triggers>
<Trigger Property="IsPressed" Value="True">
<Setter Property="Source" TargetName="Image"
Value="{Binding (local:ImageButton.ClickImage),
RelativeSource={RelativeSource TemplatedParent}}"/>
もう少し本腰を入れるなら、
Buttonから派生したImageButtonクラスを作って、
上記の添付プロパティの代わりに依存関係プロパティを定義して、
ってやっていくでしょう。
|