/ / WPF прозорец има различни цветове в VS дизайнер, отколкото при отстраняване на грешки? - c #, wpf, xaml, mahapps.metro

Прозорецът WPF има различни цветове в дизайнера на VS, отколкото при отстраняване на грешки? - c #, wpf, xaml, mahapps.metro

Цветът на фона на прозореца на WPF е бял по време на проектирането в Visual Studio, но когато дебъгвам приложението, той е черен. Защо?

Тук е моят .xaml код:

<Controls:MetroWindow x:Class="XLTT.Views.About"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:Controls="clr-namespace:MahApps.Metro.Controls;assembly=MahApps.Metro"

ShowTitleBar="False"
WindowStartupLocation="CenterOwner"
ShowCloseButton="False"
ResizeMode="NoResize"
WindowStyle="ToolWindow"
Height="320"
Width="400"
Title="About" >


<!-- your content here -->
<Grid Margin="20">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
<RowDefinition/>
</Grid.RowDefinitions>

<TextBlock Name="lblAppName" Margin="10" TextWrapping="Wrap" Text="Application Name :" VerticalAlignment="Stretch" FontSize="24" FontFamily="Segoe UI Light" Foreground="#FFF53800"/>
<TextBlock Name="lblBuild" Margin="10" TextWrapping="Wrap" Text="Build :" VerticalAlignment="Top" Grid.Row="1" FontSize="16" FontFamily="Segoe UI Light"/>
<TextBlock Name="lblOwner" Margin="10" TextWrapping="Wrap" Text="Owner :" VerticalAlignment="Top" Grid.Row="2" FontWeight="Bold" FontFamily="Segoe UI Light" FontSize="16" />
<TextBlock Name="lblLicense" Margin="10" TextWrapping="Wrap" Text="License" VerticalAlignment="Top" Grid.Row="3" FontWeight="Bold" Foreground="#FFEA1818" FontFamily="Segoe UI Light" FontSize="16" />
<Button Name="btnOk" Content="OK" HorizontalAlignment="Right" Margin="0,0,10,4" VerticalAlignment="Bottom" Width="94" Grid.Row="4" Click="btnOk_Click" Height="40"/>

</Grid>

Цветове в дизайнера Цветове, когато се изпълнява

Отговори:

2 за отговор № 1

Погледни твоя App.xaml Файл.

Ако съдържа:

<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/BaseDark.xaml" />

Заменете го с:

<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Accents/BaseLight.xaml" />

обяснение

Вашият App.xaml е входната точка за вашата програма и ще се прилаганастройките на стила за всяко дете Прозорец / Страница / Контрол, но често VS Designer не може да "зареди всички ресурси в режим на проектиране.

MahApps използват 2 по подразбиране шаблони за стил за прозорци:

"BaseLight", "BaseDark"


Тестване

Разбира се, ако не е в App.xaml можете да проверите това с ThemeManager.DetectAppStyle(this); във вашия MetroWindow Конструктор отстраняване на грешки.

Или заменете в App.xaml.cs на OnStartup() Метод като този:

public partial class App : Application
{
protected override void OnStartup (StartupEventArgs e)
{
// get the theme from the current application
var theme = ThemeManager.DetectAppStyle(Application.Current);

// now set the Green accent and dark theme
ThemeManager.ChangeAppStyle(Application.Current,
ThemeManager.GetAccent("Blue"),
ThemeManager.GetAppTheme("BaseLight"));

base.OnStartup(e);
}
}

UPDATE

След като ни кажете, че няма App.xaml Точка на влизане във Вашето приложение проблемът е ясен. MahApps изисква някои речници на ресурси, както можете да прочетете на Ръководство за бърз старт.

Мисля, че във вашия случай просто пропускате стиловете за MahApps. Така че добавете след вашето <Controls:MetroWindow> Следните маркери:

<Controls:MetroWindow.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/BaseLight.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Controls:MetroWindow.Resources>