WPF применяет цветовую тему на основе значения привязки - PullRequest
0 голосов
/ 17 декабря 2010

У меня довольно подробный пользовательский элемент управления, состоящий из нескольких разделов, к этим разделам применена специальная синяя тема, но я хочу поменять местами все цвета гридов / границ / прямоугольников / и т. Д. Зеленая версия той же темы на основе привязки в DataContext.

Очевидно, что я мог бы использовать конвертер для каждого свойства Fill / Background элементов, но это кажется очень раздражающим.

В моем конвертере (или XAML) я могу как-то применить Style к своему пользовательскому элементу управления, который просто установит свойства Fill / Background / etc ... моих элементов, по существу применяя цветовую тему?

1 Ответ

1 голос
/ 17 декабря 2010

Вы можете установить это в стиле, чтобы все прямоугольники имели определенный цвет.

В словаре ресурсов у меня есть:

<LinearGradientBrush x:Key="Windowsbackground" EndPoint="0.5,1" StartPoint="0.5,0">
    <GradientStop Color="Black" Offset="0.259"/>
    <GradientStop Color="#FF7691CD" Offset="1"/>
</LinearGradientBrush>

А потом в моем пользовательском контроле:

<UserControl x:Class="Test.Views.TestView"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    MinHeight="300" MinWidth="300" Background="{DynamicResource Windowsbackground}">
...