WPF 自定义图片按钮

Posted lonelyxmas

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WPF 自定义图片按钮相关的知识,希望对你有一定的参考价值。

原文:WPF 自定义图片按钮

此文档仅仅是一个BaseCode,已做后续查阅

XAML代码:

技术图片
<Button x:Class="IM.UI.UC.IM_ImageButton"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" Name="loc">
    <Image Name="innerImage" Stretch="None" Source="{Binding Path=ImageSourceEx,ElementName=loc}" />
</Button>
View Code

CS代码:

技术图片
 public IM_ImageButton()
        {
            InitializeComponent();
            FrameworkElement.DefaultStyleKeyProperty.OverrideMetadata(typeof(IM_ImageButton), new FrameworkPropertyMetadata(typeof(Button)));
            this.IsEnabledChanged += new DependencyPropertyChangedEventHandler(ImageButton_IsEnabledChanged);
        }
        public ImageSource GrayImageSourceEx
        {
            get { return (ImageSource)GetValue(GrayImageSourceExProperty); }
            set { SetValue(GrayImageSourceExProperty, value); }
        }
        public static readonly DependencyProperty GrayImageSourceExProperty =
            DependencyProperty.Register("GrayImageSourceEx", typeof(ImageSource), typeof(IM_ImageButton), new UIPropertyMetadata(null));
        public ImageSource ImageSourceEx
        {
            get { return (ImageSource)GetValue(ImageSourceExProperty); }
            set { SetValue(ImageSourceExProperty, value); }
        }
        public static readonly DependencyProperty ImageSourceExProperty =
            DependencyProperty.Register("ImageSourceEx", typeof(ImageSource), typeof(IM_ImageButton), new UIPropertyMetadata(null));

        //当前按钮显示状态被禁用或启用
        protected void ImageButton_IsEnabledChanged(object sender, DependencyPropertyChangedEventArgs e)
        {
            if (this.IsEnabled && (this.ImageSourceEx != null))
            {
                this.innerImage.Source = this.ImageSourceEx;
            }
            else if (!(this.IsEnabled || (this.GrayImageSourceEx == null)))
            {
                this.innerImage.Source = this.GrayImageSourceEx;
            }

        }
View Code

 

以上是关于WPF 自定义图片按钮的主要内容,如果未能解决你的问题,请参考以下文章

WPF自定义button按钮控件

JavaFX自定义窗口标题栏

WPF 自定义消息框

wpf 自定义控件 的问题 点了按钮以后 反应非常慢 请大神帮助

片段中的按钮自定义视图

在WPF中自定义控件