zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    (转)分布式系统原理
    Java常用排序
    19.Java5同步集合类的应用
    18.Java5阻塞队列的应用
    17.Java5的Exchanger同步工具
    16.Java5的CountDownLatch同步工具
    15.Java5的CyclicBarrier同步工具
    14.Java5的Semaphere同步工具
    13.Java5条件阻塞Condition的应用
    Docker部署JavaWeb项目实战
  • 原文地址:https://www.cnblogs.com/xhh-lite/p/3318817.html
Copyright © 2011-2022 走看看