本文实例为大家分享了WPF图片按钮的实现代码,供大家参考,具体内容如下
直接代码
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);
}
}
}
样式代码
<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"/>
效果展示
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
您可能感兴趣的文章:
- WPF中button按钮同时点击多次触发click解决方法
- WPF微信聊天和通讯录按钮样式代码分享
- WPF MVVM制作发送短信小按钮
- WPF水珠效果按钮组的实现教程
- WPF制作带小箭头的按钮完整代码
- WPF自定义控件和样式之自定义按钮(Button)