zoukankan      html  css  js  c++  java
  • PropertyMetadata和UIPropertyMetadata的一点区别

    使用UIPropertyMetadata写一个Brush的依赖属性。

     System.Windows.Application.Current.Dispatcher.BeginInvoke(new Action(() =>
                {
                    if (ResSyncState == ResSyncState.Default)//3秒错误信息在进度条显示出来的时候不出现,否则与进度条的状态提示有冲突
                    {
                        if (ResFileState == ResFileState.Local)
                        {
                            ErroColor = new SolidColorBrush(Color.FromArgb(255, 40, 138, 221));
                            SyncBtnToolTip = "本地有新课件,可同步至云端";
                            ShowSbErooInfo(SyncBtnToolTip);
                        }
                        else if (ResFileState == ResFileState.LocalNew)
                        {
                            ErroColor = new SolidColorBrush(Color.FromArgb(255, 40, 138, 221));
                            SyncBtnToolTip = "本地课件有改动,可同步至云端";
                            ShowSbErooInfo(SyncBtnToolTip);
                        }
                        else if (ResFileState == ResFileState.Net)
                        {
                            ErroColor = new SolidColorBrush(Color.FromArgb(255, 255, 68, 68));
                            SyncBtnToolTip = "云端有新课件,可同步至本地";
                            ShowSbErooInfo(SyncBtnToolTip);
                        }
                        else if (ResFileState == ResFileState.NetNew)
                        {
                            ErroColor = new SolidColorBrush(Color.FromArgb(255, 255, 68, 68));
                            SyncBtnToolTip = "云端课件有改动,可同步至本地";
                            ShowSbErooInfo(SyncBtnToolTip);
                        }
                    }
                }));
    
            private Brush _erroColor;
    
            public Brush ErroColor
            {
                get { return _erroColor; }
                set { _erroColor = value;
                    ErroColor.Freeze();//不加这个会 必须在与 DependencyObject 相同的线程上创建 DependencySource。
                    this.RaisePropertyChanged(r => r.ErroColor); }
            }
    

     使用PropertyMetadata的话Binding 绑定ErroColor或者直接写一个色值,界面不会变化。

            /// <summary>
            /// 异常文本颜色
            /// </summary>
            public static readonly DependencyProperty ErroColorProperty =
                DependencyProperty.Register("ErroColor", typeof(Brush), typeof(BusyPrompt), new UIPropertyMetadata(new SolidColorBrush(Color.FromArgb(255, 255, 68, 68))));
    
            public Brush ErroColor
            {
                get { return (Brush)GetValue(ErroColorProperty); }
                set { SetValue(ErroColorProperty, value); }
            }
    
  • 相关阅读:
    Linux操作_常用命令操作练习
    Linux编程_Shell脚本练习题
    Linux操作_grep/egrep工具的使用
    Linux中的链接文件_软链接和硬链接
    Linux操作_磁盘管理_增加虚拟磁盘
    Linux命令_磁盘管理_查看磁盘或目录的容量
    Linux命令_用户身份切换
    使用Unity中的Box Collider组件完成游戏场景中的碰撞检测功能
    在Unity场景中更改天空盒的步骤
    Linux命令_用户和用户组管理
  • 原文地址:https://www.cnblogs.com/m7777/p/5323071.html
Copyright © 2011-2022 走看看