WPF圖片按鈕的實(shí)現(xiàn)方法
本文實(shí)例為大家分享了WPF圖片按鈕的實(shí)現(xiàn)代碼,供大家參考,具體內(nèi)容如下
直接代碼
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>
/// 構(gòu)造函數(shù)
/// </summary>
static ImageButton()
{
DefaultStyleKeyProperty.OverrideMetadata(typeof(ImageButton),
new System.Windows.FrameworkPropertyMetadata(typeof(ImageButton)));
}
/// <summary>
/// 設(shè)置圖片
/// </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>
調(diào)用實(shí)例
效果展示

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
.Net通過TaskFactory.FromAsync簡(jiǎn)化APM
這篇文章介紹了.Net通過TaskFactory.FromAsync簡(jiǎn)化APM的方法,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-06-06
WPF在自定義文本框中實(shí)現(xiàn)輸入法跟隨光標(biāo)
本文主要為大家介紹了如何在WPF寫一個(gè)自定義的文本框,并且能實(shí)現(xiàn)讓輸入法跟隨光標(biāo)。文中的示例代碼講解詳細(xì),需要的可以參考一下2022-02-02
asp.net 處理原文件中過長(zhǎng)的viewstate代碼
asp.net網(wǎng)頁原文件中總出現(xiàn)一段很長(zhǎng)的viewstate代碼看著就頭痛 所以在網(wǎng)上找了篇文章解決了這個(gè)問題,雖然VIEWSTATE沒有完全隱藏,但大大的改善了網(wǎng)頁源文件中VIEWSTATE的長(zhǎng)度。2010-02-02
ASP.NET從字符串中查找字符出現(xiàn)次數(shù)的具體實(shí)現(xiàn)方法
今天在一場(chǎng)“特殊的討論”中引入了一個(gè)問題,如何在C#求出字符串中某字符的出現(xiàn)次數(shù),比如求“ADSFGEHERGASDF”中“A”出現(xiàn)的次數(shù)2013-11-11
asp.net2.0如何加密數(shù)據(jù)庫聯(lián)接字符串
asp.net2.0如何加密數(shù)據(jù)庫聯(lián)接字符串...2006-09-09
VS2012實(shí)現(xiàn)簡(jiǎn)單登錄界面
這篇文章主要為大家詳細(xì)介紹了VS2012實(shí)現(xiàn)簡(jiǎn)單登錄界面,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-06-06
gridview和checkboxlist的嵌套相關(guān)應(yīng)用
gridview和checkboxlist的嵌套使用,會(huì)有效的提高開發(fā)的效率,不過很多的童鞋們對(duì)此還是很陌生的,接下來將幫助童鞋們實(shí)現(xiàn)gridview和checkboxlist的嵌套使用,感興趣的朋友可以了解下,或許對(duì)你有所幫助2013-02-02
解析Asp.net,C# 純數(shù)字加密解密字符串的應(yīng)用
本篇文章是對(duì)Asp.net,C# 純數(shù)字加密解密字符串的應(yīng)用進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05

