调整控制模板并仍然尊重操作系统的主题?

发布于 2024-07-24 22:16:41 字数 189 浏览 6 评论 0原文

在 WPF 中,如何修改标准控件的模板,使其稍后尊重操作系统的当前主题? 如果我只是在混合中“编辑模板的副本”,它只会给我当前运行主题的模板。 它是否正确? 因此,当我应用修改后的模板并在不同的主题上运行应用程序时,它看起来总是一样的。

对于自定义控件甚至数据模板,问题都是类似的。 如何提供一个尊重操作系统所有可能主题的模板?

In WPF how do I modifiy the template for a standard control in a way that it will respect the current Theme of the Operating System later on? If I just "edit a copy" of the template in blend, it will just give me the template of the currently running theme. Is this correct? So when I apply the modified template and run the app on different themes it will always look the same.

For custom controls and even for data templates the problem is similar. How do I provide a template that respects all possible themes of the OS?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

寄人书 2024-07-31 22:16:41

我认为这是不可能的。 如果您为控件创建模板,则您将替换整个控件模板。

您可以使用样式仅配置公开的属性,但如果更改模板,则不再与主题相关。 您可以为每个主题创建单独的模板覆盖,但您必须明确定义每个主题,并且如果 Microsoft 创建了新主题,您将必须创建一个新模板来匹配它。

请参阅我自己的相关问题 - 覆盖 WPF 模板时,我是否必须单独覆盖每个主题的模板?

I don't think this is possible. If you create a template for a control you are replacing the entire control template.

You can use styles to just configure exposed properties, but if you change the template, you are no longer related to the theme. You can create a separate override of the template for each theme, but you would have to define each explicitly and if Microsoft created a new theme you would have to create a new template to match it.

See my own related question - When overriding WPF templates do I have to override each theme’s template separately?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文