2014-02-26 2 views
0
<Window.Resources > 
     <Style x:Name="stylepropery" x:Key="BaseContentControlStyle" TargetType="{x:Type ContentControl}"> 
      <Setter Property="Foreground" Value="{DynamicResource MyFillBrush}" /> 
     </Style> 

     <Style TargetType="{x:Type Label}" BasedOn="{StaticResource BaseContentControlStyle}" /> 

    <Style TargetType="{x:Type CheckBox}" BasedOn="{StaticResource BaseContentControlStyle}" /> 
    </Window.Resources> 

, который применяет общий цвет шрифта для всех меток и текстовых полей теперь я хочу, чтобы изменить цвет шрифта из кода позади, но некоторые, как его не прилагая я просто хочу, чтобы изменить сеттер значения СобственостиКак изменить стиль set.resource?

Setter setter = new Setter(ContentControl.ForegroundProperty, dt.Rows[0]["value"]); 
Style style = this.FindResource("BaseContentControlStyle") as Style; 
style.Setters.Add(setter); 

Я использовал это, но не succedd

+0

Его не возможно иметь два 'Setter' для 'Property' в' Style' .., а также убедитесь, что 'Style'' Setter' не запечатаны ... – Sankarann

+0

Так что, если я хочу применить цвет ко всем элементам управления с помощью codebehind, это невозможно? это так? –

+0

Если этот стиль не запечатан, вы можете удалить старый сеттер для переднего плана и добавить новый сеттер .. он будет работать ... – Sankarann

ответ

0

Попробуйте этот код, это может помочь вам

Style style = new Style(typeof(ContentControl)); 

style.Setters.Add (новый Setter (ContentControl.ForegroundProperty, Brushes.Green)); Ресурсы ["BaseContentControlStyle"] = стиль;

+0

Я пробовал это, но не работает –

0
  var converter = new System.Windows.Media.BrushConverter(); 
      var brush = (Brush)converter.ConvertFromString(dt.Rows[0]["value"].ToString()); 
      Style st = this.Resources["BaseContentControlStyle"] as Style; 
      Random r = new Random(); 
      this.Resources["MyFillBrush"] = (new BrushConverter().ConvertFrom(dt.Rows[0]["value"].ToString())); 

После много я прибегая к помощи нашел решение я добавляю это решение для будущих пользователей refrence, чтобы они не должны искать много вещей :)

Смежные вопросы