首页 > 编程 > .NET > 正文

WPF图片按钮的实现方法

2024-07-10 12:54:39
字体:
来源:转载
供稿:网友

我们在开发项目中不使用按钮,但是在WPF中有很多方法可以定义按钮的样式,也可以重写其模板,接下来,错新技术频道小编为大家介绍的是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图片按钮的实现方法,希望大家能够喜欢,也希望大家一如既往的支持js.VeVb.com吧!

 

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表