好的,这似乎很难,或者我遗漏了一些明显的东西。我想创建将在所有产品中使用的可重复使用的窗口。这意味着该控件位于 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>
我所看到的:大黑屏,仅此而已(大黑色矩形 - 没有标题栏)。任何人都可以对此有所了解吗?通过谷歌搜索,我发现其他人也有同样的问题,所以我想这不是我特有的。
禁用硬件渲染没有帮助。