调整控制模板并仍然尊重操作系统的主题?
在 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我认为这是不可能的。 如果您为控件创建模板,则您将替换整个控件模板。
您可以使用样式仅配置公开的属性,但如果更改模板,则不再与主题相关。 您可以为每个主题创建单独的模板覆盖,但您必须明确定义每个主题,并且如果 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?