这篇文章主要为大家详细介绍了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"/>
效果展示
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。 |