1.继承

/// <summary>
    /// 图标+文本编辑按钮控件
    /// </summary>
    public partial class IconEditButton : Button

 

 

2.构造

#region Construction
        /// <summary>
        /// 构造函数
        /// </summary>     
        static IconEditButton()
        {
            DefaultStyleKeyProperty.OverrideMetadata(typeof(IconEditButton), new FrameworkPropertyMetadata(typeof(IconEditButton)));
        }
        #endregion

 

 

3..自定义以来属性

 #region Icon
        /// <summary>
        /// 注册
        /// </summary>
        public static readonly DependencyProperty IconProperty =
            DependencyProperty.Register
            (
                "Icon",
                typeof(string),
                typeof(IconEditButton),
                new PropertyMetadata(string.Empty)
                );
        /// <summary>
        /// 按钮字体图标编码
        /// </summary>
        public string Icon
        {
            get { return (string)GetValue(IconProperty); }
            set { SetValue(IconProperty, value); }
        }
        #endregion

4.重写模板

 <TextBlock x:Name="icon"
                                   Margin="{Binding RelativeSource={RelativeSource Mode=TemplatedParent}, Path=IconMargin}"
                                   RenderTransformOrigin="0.5,0.5"
                                   
                                   Text="{Binding RelativeSource={RelativeSource Mode=TemplatedParent}, Path= Icon}"
                                   FontSize="{Binding RelativeSource={RelativeSource Mode=TemplatedParent}, Path= IconSize}"
                                   Foreground="{Binding RelativeSource={RelativeSource Mode=TemplatedParent}, Path= Foreground}"
                                   HorizontalAlignment="Left">

 

相关文章: