
스타일
<Style TargetType="{x:Type c:ImageButton}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type c:ImageButton}">
<Border x:Name="buttonBorder">
<Border.Effect>
<DropShadowEffect Opacity="0.0" />
</Border.Effect>
<Image Source="{TemplateBinding NormalImage}" x:Name="img" />
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsPressed" Value="true">
<Setter TargetName="img" Property="Source" Value="{Binding PressImage, RelativeSource={RelativeSource TemplatedParent}}" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
사용예 :
<c:ImageButton x:Name="xStartBtn" Width="300" Height="300" Content="Start" NormalImage="/CartoonMuseum;component/Images/sampleBtn.png" PressImage="/CartoonMuseum;component/Images/samplePressBtn.png" />
Themes/Generic.xaml<Style TargetType="{x:Type c:ImageButton}"><Setter Property="Template"><Setter.Value><ControlTemplate TargetType="{x:Type c:ImageButton}"><Border Name="buttonBorder"><Border.Effect><DropShadowEffect Opacity="0.0" /></Border.Effect><Border.Child><Image Source="{TemplateBinding NormalImage}" x:Name="img" /></Border.Child></Border><ControlTemplate.Triggers><Trigger Property="IsPressed" Value="true"><Setter TargetName="img" Property="Source" Value="{Binding PressImage, RelativeSource={RelativeSource TemplatedParent}}" /></Trigger></ControlTemplate.Triggers></ControlTemplate></Setter.Value></Setter></Style>
ImageButton.cs
public class ImageButton : Button{public ImageSource NormalImage{get { return base.GetValue(NormalImageProperty) as ImageSource; }set { base.SetValue(NormalImageProperty, value); }}public static readonly DependencyProperty NormalImageProperty =DependencyProperty.Register("NormalImage", typeof(ImageSource), typeof(ImageButton));public ImageSource PressImage{get { return base.GetValue(PressImageProperty) as ImageSource; }set { base.SetValue(PressImageProperty, value); }}public static readonly DependencyProperty PressImageProperty =DependencyProperty.Register("PressImage", typeof(ImageSource), typeof(ImageButton));public ImageButton(){DefaultStyleKey = typeof(ImageButton);}public override void OnApplyTemplate(){base.OnApplyTemplate();}}
'wpf' 카테고리의 다른 글
Animation 페이지 넘기기 컨트롤 (0) | 2016.04.06 |
---|---|
[wpf] Object Capture 컨트롤 캡쳐 (0) | 2016.04.05 |
Height를 Width 비율에 맞게 나오게 하는 공식 (0) | 2016.01.20 |
웹캠위에 이미지를 오버랩 하여 스크린샷 찍기 (0) | 2015.12.08 |
[wpf] 핑테스트 가능 코드 (0) | 2009.09.29 |