如何通过MahApps.Metro或MUI通过主题访问用于用户控件自定义渲染的主题颜色

问题描述

我有许多UserControls最终通过FrameworkElement :: OnRender()执行渲染。我绘制了自定义的拇指栏,突出显示的元素,按钮,并希望使控件能够响应活动主题。我使用MahApps.Metro,想知道如何在活动主题之外为某些功能添加当前颜色。

我现在不使用任何样式,因为我只是使用显式的画笔和笔将控件组合在一起,但是我意识到有必要朝那个方向移动。

如何组织笔和画笔来响应当前主题

解决方法

有关主题颜色和画笔的mahapps Metro源代码可在此处找到:

https://github.com/MahApps/MahApps.Metro/blob/develop/src/MahApps.Metro/Styles/Themes/Theme.Template.xaml

所以简短的答案是,您应该对画笔和颜色使用DynamicResource表示法,然后尝试那里的键:

例如

<Rectangle  Fill={DynamicResource MahApps.Brushes.Button.Flat.Background}"

我建议您做一些实验来检查画笔和颜色,这些画笔确实已设置在您打算使用的主题中,并且您的ui可以使用它们。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...