Как извлечь одну из кистей поддонов из Material Design в инструментарии XAML, используя код C # Behind? - PullRequest
0 голосов
/ 12 февраля 2019

Моя жалкая попытка получить одну:

MaterialDesign.Themes.Wpf.Current.Brushes.MaterialDesignBody

(что, конечно, не работает)

Документация для кистей здесь .Сами кисти кажутся расположенными здесь ;Я могу получить их в xaml, но не знаю, как получить их в C #.

Если кто-нибудь знает, какая кисть контролирует цвет текста, я был бы благодарен за это.Бонусные баллы за извлечение кисти из выбранной в данный момент темы.

Ответы [ 2 ]

0 голосов
/ 12 февраля 2019

Поскольку ресурсы вставляются в словарь ресурсов приложения, можно выполнить следующее:

Application.Current.TryFindResource("PrimaryHueLightBrush")
0 голосов
/ 12 февраля 2019

Это ресурсы.

В FrameworkElement вы можете получить его, используя метод FindResource:

SolidColorBrush MaterialDesignBody = FindResource("MaterialDesignBody") as SolidColorBrush;

Вы также можете использовать метод TryFindResource класса Application:

SolidColorBrush MaterialDesignBody = Application.Current.TryFindResource("MaterialDesignBody") as SolidColorBrush;

Это даст вам кисть для текущей выбранной темы, при условии, что вы слили ее в свой файл App.xaml, например:

<ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.Dark.xaml" />
...