为什么 Catel 的 TabControl 没有成为 MahApps 的主题?

Why is Catel's TabControl not getting themed by MahApps?

差不多的标题。 catel:TabControl 无论 MahApps 的主题是什么,它的背景都是白色的。

我无法判断它是否是唯一以这种方式运行的 Catel 控件,因为我没有测试它们中的每一个。

但是就是这样,它不受 MahApps 所选主题(BaseDark 或 BaseLight)的影响。由于我从浅色主题开始并不明显,所以 TabControl 和预期的一样是白色的,但是一旦我切换到深色主题,它仍然是白色的。

这个问题已经在 Orchestra (https://github.com/WildGums/Orchestra) 中解决了。

我认为您应该重写 Catel 的选项卡控件样式,如下所示: <windows:MetroDataWindow.Resources> <ResourceDictionary> <Style TargetType="catel:TabControl" BasedOn="{StaticResource {x:Type TabControl}}" /> </ResourceDictionary> </windows:MetroDataWindow.Resources>

您可以在 Orchestra 的 Orchestra.Shell.MahApps 项目中查看示例:

兴趣点:

  • Orchestra.Examples.MahApps/Orchestra.Examples.MahApps.Shared/Views/MainView.xaml

  • 乐团.Shell/Orchestra.Shell.MahApps/Orchestra.Shell.MahApps.Shared/Views/ShellWindow.xaml

要在 Orchestra 中启用深色 MahApps 主题,您应该将以下代码添加到 Orchestra。Shell/Orchestra.Shell.MahApps/Orchestra.Shell.MahApps.Shared/Themes/Generic .xaml <ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/BaseDark.xaml" />

如果有帮助,请告诉我。