一般漂亮點的軟件界面都不會使用系統默認的按鈕樣式
本猿不想每次需要的時候再重新寫一遍或者大段的復制粘貼代碼
擴充一下自己的軍火庫
做之前也查了不少資料
用express工具也可以做出很炫的水晶按鈕
可惜本猿是從C++到C#再轉到WPF的
只能用做C#winform程序的思想來實現了
按鈕最多包括
初始化圖片按鈕控件的時候指定
控件捕獲其內部image控件的鼠標事件
鼠標在空間內按下然後彈起
imageButton
imageButton
///
/// imageButton
///
public partial class imageButton : UserControl
{
// 設置按鈕使能狀態
private bool isEnable = true;
// 按鈕的
private ImageSource imageUp = null;
private ImageSource imageHover = null;
private ImageSource imageDown = null;
private ImageSource imageDisable = null;
// 按鈕的文本屬性
private string text =
private FontFamily textFamily;
private double textSize;
private Brush textColor;
// 是否在當前按鈕中按下
private bool isClicking = false;
// 點擊事件
public event EventHandler click;
public imageButton()
{
InitializeComponent()
}
#region 屬性賦值
// 按鈕可用
public bool IsEnable
{
get { return isEnable; }
set
{
isEnable = value;
imageBtn
}
}
// 按鈕彈起圖片
public ImageSource ImageUp
{
get { return imageUp; }
set
{
imageUp = value;
imageBtn
}
}
// 按鈕劃過圖片
public ImageSource ImageHover
{
get { return imageHover; }
set { imageHover = value; }
}
// 按鈕按下圖片
public ImageSource ImageDown
{
get { return imageDown; }
set { imageDown = value; }
}
// 按鈕禁用圖片
public ImageSource ImageDisable
{
get { return imageDisable; }
set { imageDisable = value; }
}
// 按鈕文本
public string Text
{
get { return text; }
set
{
text = value;
labelBtn
}
}
// 按鈕字體
public FontFamily TextFamily
{
get { return textFamily; }
set
{
textFamily = value;
labelBtn
}
}
// 按鈕字號
public double TextSize
{
get { return textSize; }
set
{
textSize = value;
labelBtn
}
}
// 文字顏色
public Brush TextColor
{
get { return textColor; }
set
{
textColor = value;
labelBtn
}
}
#endregion
#region 按鈕事件
// 進入
private void imageBtn_MouseEnter(object sender
{
if (isEnable)
{
if (null != imageHover)
{
imageBtn
}
}
}
// 按下
private void imageBtn_MouseLeftButtonDown(object sender
{
if (isEnable)
{
isClicking = true;
if (null != imageDown)
{
imageBtn
}
}
}
// 彈起
private void imageBtn_MouseLeftButtonUp(object sender
{
if (isEnable)
{
// 完成在控件上點擊
if (isClicking)
{
isClicking = false;
imageBtn
// 觸發點擊事件
if (null != click) click(this
}
}
}
// 離開
private void imageBtn_MouseLeave(object sender
{
if (isEnable)
{
isClicking = false;
imageBtn
}
}
#endregion
}
使用方法
xmlns=
xmlns:x=
xmlns:imageBotton =
Title=
using System;using System
public Window
{
InitializeComponent()
}
private void Grid_Loaded(object sender
{
// 加載按鈕圖片
try
{
imgButtonA
imgButtonA
imgButtonA
imgButtonA
imgButtonV
imgButtonV
imgButtonV
imgButtonV
}
catch
{
MessageBox
}
// 按鈕文字
imgButtonA
imgButtonV
// 按鈕點擊事件
imgButtonA
imgButtonV
}
// 禁用按鈕
void imgButtonA_click(object sender
{
imgButtonV
}
// 禁用按鈕
void imgButtonV_click(object sender
{
imgButtonA
} }}
From:http://tw.wingwit.com/Article/program/net/201311/12734.html