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

How to access theme colors for user control custom rendering with theming via MahApps.Metro or MUI

我有许多最终通过 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 可以与它​​们一起使用。