本文实例为大家分享了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