2013-03-08 1 views
1

Я хочу изменить цвет SolidColorBrush в xaml, C#, когда приложение запущено. (. Это круговая диаграмма с WinRT XAML Toolkit, и я хочу изменить цвет ломтиков)Изменить цвет ресурсов из кода C# в приложении Windows 8

<charting:Chart.Palette> 
    <charting:ResourceDictionaryCollection> 
     <ResourceDictionary> 
      <SolidColorBrush x:Key="MyBrush" Color="#4586d8"/> 
      <Style x:Key="DataPointStyle" TargetType="Control"> 
       <Setter Property="Background" Value="{StaticResource MyBrush}"/> 
      </Style> 
     </ResourceDictionary> 
    </charting:ResourceDictionaryCollection> 
</charting:Chart.Palette> 

Поскольку нет DynamicResource в Win8 приложений, это, как я пытался установить без успеха:

Color yellow = Color.FromArgb(0xff, 0xff, 0xb9, 0x01); 
Application.Current.Resources["MyBrush"] = new SolidColorBrush(yellow); 

Как я могу установить цвет ресурса?

ответ

1

Я думаю, что в WPF DynamicResource будет в основном создавать новый экземпляр каждый раз, когда он запрашивается, и будет переоценивать изменения в иерархии зависимостей ресурсов. В зависимости от того, что вы хотите сделать - вы подойдете к нему по-другому в своем случае. Вы можете обновить стили/шаблоны, чтобы изменить базовые цвета, вы можете изменить визуальные состояния, чтобы заставить их реагировать на изменение состояния, которое изменило бы цвета, вы можете написать прикрепленное поведение (используя прикрепленное свойство напрямую или какое-то поведение WinRT с открытым исходным кодом), которые вы установили бы в своих точках данных, которые будут обновлять кисти на основе свойства события или привязки, вы можете пересечь визуальное дерево, чтобы обновить цвета на основе, или вы можете создать два почти одинаковых, наложенных элемента управления диаграммами с разными цветами и изменить цвета, изменяя видимость элементов управления диаграммой. Опять же, возможно, вы могли бы как-то просто привязать кисть точки диаграммы к базовым данным - я не проверял, возможно ли это, но если это не так, вы можете изменить код элементов управления диаграммой, чтобы дать вам это (это источник с открытым исходным кодом!)

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