WPF как заставить designer отображать пользовательский стиль окна
Я сделал новый CustomControl
на основе окна Control
.
Когда я использую свой элемент управления, он не отображается в режиме конструктора, вместо этого он по-прежнему использует стиль окна по умолчанию.
Как я могу заставить дизайнера отображать мой стиль окна вместо стиля по умолчанию?
Мой Файл MainWindow.язык XAML:
<CustomWindow:MetroWindow x:Class="Testz.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:CustomWindow="clr-namespace:MetroWindow;assembly=MetroWindow"
Title="MainWindow" Height="350" Width="525" BorderBrush="Red">
<Grid>
</Grid>
</CustomWindow:MetroWindow>
ссылка на весь мой проект - может быть, вам понадобится
как это выглядит в дизайнере и как это на самом деле выглядит так:
3 ответов
Я думаю, что понял, чего вы пытались достичь.
проблема в том, что конструктор Visual Studio не может найти ресурс, поскольку он находится в библиотеке. Что вам нужно сделать, это создать ResourceDictionary, указывающий на него на вас приложение, чтобы иметь возможность видеть шаблон времени дизайнера.
<Application x:Class="DemoMetroWindow.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:MetroWindow"
StartupUri="DemoWindow.xaml">
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="pack://application:/MetroWindow;component/Themes/Generic.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
</Application>
вы можете узнать больше из ссылки ниже.
OnApplyTemplate () никогда не вызывается
в WPF сделать тип в Время разработки?
http://blogs.msdn.com/b/jgalasyn/archive/2007/10/29/troubleshooting-wpf-designer-load-failures.aspx
http://blogs.msdn.com/b/jnak/archive/2007/11/08/code-behind-and-the-wpf-designer.aspx
вы используете метро Mahapps, не так ли?
вы можете использовать стили предусмотрены. укладка окна с метро
<Window.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Colours.xaml" />
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Fonts.xaml" />
<ResourceDictionary Source="pack://application:,,,/MahApps.Metro;component/Styles/Controls.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>
</Window.Resources>
вы можете изменить цвет окна, изменив словарь ресурсов синего цвета.xaml другими цветами, просто проверьте это.
когда ссылки на ресурсы в приложение.xaml в порядке, вы должны перезапустить Visual Studio. В большинстве случаев темы отображаются правильно.
в отношении