WPF UI框架界面开发教程(十一)

在项目开发中,按钮有多种形态,UI样式文件比较散乱,不方便维护和扩展,比如按钮有文本、图标+文本、动画、链接等几种类型。每种类型写一个样式,所以在按钮中增加枚举类型,判断是哪种类型按钮,加载相对应用控件模板,假如是链接按钮,设置local:ButtonFrameHelper.Type ="Link"就完成样式切换。

WPF UI框架界面开发教程

WPF UI框架界面开发教程(十一)_第1张图片

/// 
    /// 按钮类型
    /// 
    public enum ButtonType
    {
        /// 
        /// 文本
        /// 
        [Description("文本")]
        Text = 0,

        /// 
        /// 图标和文本
        /// 
        [Description("图标和文本")]
        IconText = 1,

        /// 
        /// 动画
        /// 
        [Description("动画")]
        Animation = 2,

        /// 
        /// 链接
        /// 
        [Description("链接")]
        Link = 3,
    }

1:首先添加button类型枚举参数。
 

public class ButtonFrameHelper : DependencyObject
    {
        /// 
        /// 按钮类型
        /// 
        public static readonly DependencyProperty TypeProperty = DependencyProperty.Register(
           "Type", typeof(ButtonType), typeof(ButtonFrameHelper), new PropertyMetadata(default(ButtonType)));

        public static ButtonType GetType(DependencyObject property)
        {
            return (ButtonType)property.GetValue(TypeProperty);
        }

        public static void SetType(DependencyObject property, ButtonType value)
        {
            property.SetValue(TypeProperty, value);
        }

        /// 
        /// 按钮图标
        /// 
        public Geometry Icon
        {
            get { return (Geometry)GetValue(IconProperty); }
            set { SetValue(IconProperty, value); }
        }

        public static readonly DependencyProperty IconProperty =
            DependencyProperty.Register("Icon", typeof(Geometry), typeof(ButtonFrameHelper));

    }

2:添加Button类依赖属性,Type是Button枚举类型,通过设置此参数来切换,Icon是图标+文本按钮需要此属性。

下面把说明样式代码:



    
    
        
            
        
                  
            
                
            
            
                
            
        
    

    
    
        
            
                
            
        
        
            
                
                    
                        
                    
                
            
            
                
                    
                        
                    
                
            
            
                
            
        
    

    
    
        
            
                
                    
                        
                    
                    
                    
                
            
        
        
            
                
                    
                        
                    
                
            
            
                
                    
                        
                    
                
            
            
                
            
            
                
                
            
        
    

    
    
        
            
                

                
        
        
            
                
                    
                        
                    
                
            
            
                
                    
                        
                    
                
            
            
                
            
        
    

TriggerProperty="local:ButtonFrameHelper.Type"Value="Text" 设置是文本类型, 设置模板动态加载资源 TextButton,其它类型以此类推。

最后添加page页测试这几种按钮类型



    
        
            
                
                    
                        
            
        
    

这样就不需要找有哪些样式button。

你可能感兴趣的:(c#,WPF,MVVM,UI设计,c#,ui设计,wpf)