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图片按钮的实现方法 的全部内容, 来源链接: utcz.com/z/324634.html

回到顶部