本文实例为大家分享了WPF图片按钮的实现代码,供大家参考,具体内容如下
直接代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
|
public class ImageButton : System.Windows.Controls.Button { /// <summary> /// 图片 /// </summary> public static readonly DependencyProperty ImageProperty = DependencyProperty.Register( "Image" , typeof (ImageSource), typeof (ImageButton), new PropertyMetadata( null )); /// <summary> /// 图片的宽度 /// </summary> public static readonly DependencyProperty ImageWidthProperty = DependencyProperty.Register( "ImageWidth" , typeof ( double ), typeof (ImageButton), new PropertyMetadata( double .NaN)); /// <summary> /// 图片的高度 /// </summary> public static readonly DependencyProperty ImageHeightProperty = DependencyProperty.Register( "ImageHeight" , typeof ( double ), typeof (ImageButton), new PropertyMetadata( double .NaN)); /// <summary> /// 构造函数 /// </summary> static ImageButton() { DefaultStyleKeyProperty.OverrideMetadata( typeof (ImageButton), new System.Windows.FrameworkPropertyMetadata( typeof (ImageButton))); } /// <summary> /// 设置图片 /// </summary> public ImageSource Image { get { return GetValue(ImageProperty) as ImageSource; } set { SetValue(ImageProperty, value); } } /// <summary> /// 图片宽度(属性) /// </summary> public double ImageWidth { get { return ( double )GetValue(ImageWidthProperty); } set { SetValue(ImageWidthProperty, value); } } /// <summary> /// 图片高度(属性) /// </summary> public double ImageHeight { get { return ( double )GetValue(ImageHeightProperty); } set { SetValue(ImageHeightProperty, value); } } } |
样式代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
<Style TargetType= "{x:Type xi:ImageButton}" > <Setter Property= "Template" > <Setter.Value> <ControlTemplate TargetType= "{x:Type xi:ImageButton}" > <Grid> <Grid.RowDefinitions> <RowDefinition Height= "*" /> <RowDefinition Height= "Auto" /> </Grid.RowDefinitions> <Border x:Name= "border" Grid.RowSpan= "2" BorderBrush= "{TemplateBinding BorderBrush}" BorderThickness= "{TemplateBinding BorderThickness}" Background= "{TemplateBinding Background}" SnapsToDevicePixels= "true" CornerRadius= "3,3,3,3" /> <Image Grid.Row= "0" Source= "{TemplateBinding Image}" Width= "{TemplateBinding ImageWidth}" Height= "{TemplateBinding ImageHeight}" VerticalAlignment= "{TemplateBinding VerticalAlignment}" /> <ContentPresenter Grid.Row= "1" HorizontalAlignment= "Center" Margin= "{TemplateBinding Padding}" VerticalAlignment= "Center" RecognizesAccessKey= "True" /> </Grid> <ControlTemplate.Triggers> <Trigger Property= "IsPressed" Value= "True" > <Setter Property= "Foreground" Value= "#999999" /> </Trigger> </ControlTemplate.Triggers> </ControlTemplate> </Setter.Value> </Setter> </Style> |
调用实例
复制代码 代码如下:
<xi:ImageButton Image="../Image/设置.png" Content="新增会员" ImageHeight="52" ImageWidth="52" Width="72" Height="72" Margin="30,10,10,10"/>
效果展示
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:http://www.cnblogs.com/PettyHandSome/archive/2017/10/23/7717908.html