Хорошо, это кажется очень сложным, или я упускаю что-то очевидное. Я хочу создать многоразовое ОКНО, которое будет использоваться во всех продуктах. Это означает, что элемент управления находится внутри сборки WPF.Controls. Themes/Generic.xaml не является решением, мне нужно предоставить свой собственный код для окна, например, пользовательский крючок для сообщений и т. д.
Вот мой код в WPF.Controls.dll:
public class CustomWindow : Window
{
static CustomWindow()
{
DefaultStyleKeyProperty.OverrideMetadata(
typeof(CustomWindow),
new FrameworkPropertyMetadata(typeof(CustomWindow)));
}
Теперь в другой сборке я создаю файл XAML и пытаюсь использовать это:
<controls:CustomWindow x:Class="Views.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:controls="clr-namespace:WPF.Controls;assembly=WPF.Controls"
WindowStartupLocation="CenterScreen">
<TextBlock Text="TESTING" />
</controls:CustomWindow>
Что я вижу: большой черный экран, ничего больше, не меньше (большой черный прямоугольник - без заголовка). Кто-нибудь может пролить свет на это? Немного погуглив, я обнаружил, что у кого-то еще была такая же проблема, так что я думаю, что это не конкретно для меня.
Отключение аппаратного рендеринга не помогает.