2016-09-01 40 views
0

設置系統資源我有這個視圖模型,其中包括以下屬性通過MVVM在WPF

private SolidColorBrush _Color; 

public SolidColorBrush LogColor 
{ 
    get { return _Color; } 
    set 
    { 
     _Color = value; 
     PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("LogColor")); 
    } 
} 


private LogType _Logtype; 

public LogType Logtype 
{ 
    get { return _Logtype; } 
    set 
    { 
     _Logtype = value; 
     switch (value) 
     { 
      case LogType.Info: 
       LogColor = System.Windows.SystemColors.ControlTextBrush; 
       break; 
      case LogType.Warning: 
       LogColor = new SolidColorBrush(Colors.YellowGreen); 
       break; 
      case LogType.Error: 
       LogColor = new SolidColorBrush(Colors.Red); 
       break; 
      case LogType.Success: 
       LogColor = new SolidColorBrush(Colors.LawnGreen); 
       break; 
      default: 
       LogColor = System.Windows.SystemColors.ControlTextBrush; 
       break; 
     } 
     PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("Logtype")); 
    } 
} 

工作正常使用的SolidColorBrush作爲System.Windows.SystemColors.ControlTextBrush結合,但在主題更改爲黑啓動問題。所以我需要使用System.Windows.SystemColors.ControlTextBrushKey。現在我找不到任何可以幫助我的資源。 FrameworkElement.SetResourceReference方法會做到這一點,但我沒有從MVVM的角度看到這一點。 那麼有什麼辦法可以設置這個動態資源到我的控制?

回答

1

試試這個: -

LogColor = (Brush)Application.Current.FindResource(
        System.Windows.SystemColors.ControlTextBrushKey);