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

 

posted @ 2013-09-13 11:38  fujc2dev  阅读(578)  评论(0编辑  收藏  举报