XAML/C#:页面/属性样式更改效率



我目前正在处理一个WPF项目,我所处的程序中有一个方面不知道如何高效地创建解决方案。

问题:在我的程序中,我计划实现UI版本(深色模式、浅色模式等(。基本上只是UI颜色偏好。然而,我不确定使用其他UI功能的最佳方式。

到目前为止,我已经为应用程序中的每个UI偏好设置了样式。XAML,基于单个属性,如文本框和矩形,并将通用样式放在要显示的单个页面中。

UI更改需要保存在同一个SHOW XAML文件中,以便可以实现事件。我认为这需要通过应用程序来完成。XAML(我已经在使用它了(。但是,显示UI更改的最佳方式是什么?我应该创建一个整页样式吗?是否根据样式单独更改每个特性?或者有没有更好的方法可以有效地完成UI更改。

谢谢!

回答一些问题和陈述:

  • 标准模板(请参阅:https://stackoverflow.com/a/45603437/563088)使用主题,这将是合乎逻辑的第一步
  • 使用资源字典中的模板和颜色来维护单独的文件可能会更容易,尽管模板必须在Generic.xaml中
  • 不要使用事件,请使用命令和绑定。如果需要使用事件,请不要将它们挂接在XAML中,而是将它们挂接到控件的OnApplyTemplate中。这样,模板就可以交换出去,并且模板不再被迫提供特定的控件/事件,因为OnApplyTemplate可以搜索控件,如果找不到,则可以跳过它
  • 至于切换:根据经验,我发现在单独的文件中定义多个颜色/画笔/资源集更容易。为这些颜色和笔刷指定相同的名称(例如HighlightBrush、ButtonBorder或CheckBoxCheckGlyph(。根据主题加载不同的资源文件。模板将简单地引用这些资源名称(如果您想启用实时切换,请使用DynamicResource,或者在重新启动窗口/应用程序时使用StaticResource进行切换(

最新更新