我以前遇到过这个问题而且从未设法解决它。我刚刚创建了一个新项目,添加了Mahhapps Metro并将黑暗主题设置到我的窗口,正如快速入门指南所述。没做太多其他事。
首先,设计师没有加载任何主题。因此它显示为主要是默认并使用黑暗主题运行 - 我可以使用它。
但是,运行一段时间后,设计师应用了一半的主题(看起来是在视觉工作室重启后)。或者至少,所有组件都是主题,但没有应用深色背景。结果是......隐形组件,白色为白色:
有谁知道这方面的工作?有什么方法可以强迫设计师坚持主题吗?
编辑:应该通过defaut包含这个,抱歉。这是App.xml:
<Application x:Class="WpfApplication1.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:FrontendUI"
StartupUri="MainWindow.xaml">
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Controls.xaml" />
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Fonts.xaml" />
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Colors.xaml" />
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/Blue.xaml" />
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/BaseDark.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
和主窗口xaml:
<Controls:MetroWindow
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:FrontendUI"
xmlns:Controls="clr-namespace:MahApps.Metro.Controls;assembly=MahApps.Metro"
xmlns:xctk="http://schemas.xceed.com/wpf/xaml/toolkit" x:Class="FrontendUI.MainWindow"
mc:Ignorable="d"
Title="MainWindow" Height="350" Width="525">
<Grid>
<Label x:Name="label" Content="Label" HorizontalAlignment="Left" Margin="47,44,0,0" VerticalAlignment="Top"/>
<CheckBox x:Name="checkBox" Content="CheckBox" HorizontalAlignment="Left" Margin="38,89,0,0" VerticalAlignment="Top" Width="116"/>
<TextBox x:Name="textBox" HorizontalAlignment="Left" Height="23" Margin="120,44,0,0" TextWrapping="Wrap" Text="TextBox" VerticalAlignment="Top" Width="120"/>
</Grid>
我通过更改设计器的默认背景颜色找到了一种解决方法(因此,用户控件中的组件可以使用标准透明背景显示),只需在窗口上添加背景颜色,所以可以看到那里的任何组件。