XAML/C#:页面/属性样式更改效率
我目前正在从事一个WPF项目,我在项目的某个方面不知道如何高效地创建解决方案 问题: 在我的程序中,我计划实现UI版本(暗模式、亮模式等)。基本上只是UI颜色偏好。但是,我不确定使用其他UI功能的最佳方式 到目前为止,我已经在APP.XAML中根据各个属性(如文本框和矩形)为每个UI首选项设置了样式,并将常规样式放在要显示的各个页面中 UI更改需要保存在显示的相同XAML文件中,以便可以实现事件。我相信这需要通过使用APP.XAML(我已经在使用它)来完成。但是,显示UI更改的最佳方式是什么?我应该创建一个完整的页面样式吗?是否根据样式分别更改每个属性?或者是否有更好的方法来高效地完成UI更改XAML/C#:页面/属性样式更改效率,c#,wpf,xaml,C#,Wpf,Xaml,我目前正在从事一个WPF项目,我在项目的某个方面不知道如何高效地创建解决方案 问题: 在我的程序中,我计划实现UI版本(暗模式、亮模式等)。基本上只是UI颜色偏好。但是,我不确定使用其他UI功能的最佳方式 到目前为止,我已经在APP.XAML中根据各个属性(如文本框和矩形)为每个UI首选项设置了样式,并将常规样式放在要显示的各个页面中 UI更改需要保存在显示的相同XAML文件中,以便可以实现事件。我相信这需要通过使用APP.XAML(我已经在使用它)来完成。但是,显示UI更改的最佳方式是什么?我
谢谢 在回答一些问题和陈述时:
- 标准模板(请参阅:)使用主题,因此这将是遵循逻辑的第一步
- 虽然模板必须位于Generic.xaml中,但在资源字典中使用模板和颜色来维护单独的文件可能更容易
- 不要使用事件,使用命令和绑定。如果需要使用事件,不要在XAML中连接它们,而是在控件的OnApplyTemplate中连接它们。这样,模板就可以调出,并且不再强制模板提供特定的控件/事件,因为OnApplyTemplate可以搜索控件,如果找不到则跳过它
- 至于切换:根据经验,我发现在单独的文件中定义多个颜色/笔刷/资源集更容易。为这些颜色和笔刷指定相同的名称(例如,HighlightBrush、ButtonBorder或CheckBoxCheckGlyph)。根据主题,加载不同的资源文件。模板将简单地引用这些资源名称(如果要启用实时切换或StaticResource以在重新启动窗口/应用程序时切换,请使用DynamicSource)