Я хотел бы создать библиотеку некоторых из моих часто используемых элементов управления WPF, и одним из этих элементов управления является CustomWindow
, который наследуется от Окно
класс. Как я могу заставить мое CustomWindow
использовать внешний вид по умолчанию, который определен в библиотеке с ним?
Я могу заменить
<Window x:Class="..." />
на
<MyControls:CustomWindow x:Class="..." />
, и он работает для поведения окна, но не для видимость.
РЕДАКТИРОВАТЬ
Вот упрощенная версия того, что у меня есть:
Пользовательский элемент управления окном. Находится в библиотеке управления.
public class CustomChromeWindow: Window
{
static CustomChromeWindow()
{
DefaultStyleKeyProperty.OverrideMetadata(typeof(CustomChromeWindow),
new FrameworkPropertyMetadata(typeof(CustomChromeWindow)));
}
}
Стиль окна. Находится в Generic.xaml, ResourceDictionary в папке Themes тестового окна библиотеки управления
<Style TargetType="local:CustomChromeWindow">
<Setter Property="WindowStyle" Value="None" />
<Setter Property="Background" Value="Red" />
</Style>
. Окно запуска отдельного проекта, который ссылается на библиотеку управления
<local:CustomChromeWindow
x:Class="MyControlsTest.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:MyControls;assembly=MyControls"
Title="MainWindow" Height="350" Width="525"
>
<Grid>
<TextBlock Text="This is a Test" />
</Grid>
</local:CustomChromeWindow>
В итоге я получаю окно с обычным WindowStyle и черным фоном.