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

 

转载于:https://www.cnblogs.com/xhh-lite/p/3318817.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值