3

这是我的问题:我创建了一个窗口自定义控件。

public class NxChromeWindow : Window

然后我在默认主题中的通用资源中有:

<Style TargetType="{x:Type windows:NxChromeWindow}">

我的应用中有 2 个 Windows 实例:windows:NxChromeWindow 和 Window。

运行时一切正常。我看到 2 种不同的风格,但在使用设计师或混合时。发生了一些非常奇怪的事情:

设计器采用 windows:NxChromeWindow 的样式并将其应用于 windows:NxChromeWindow 和普通窗口。

我不明白这怎么可能。如何将子类样式应用于基类?我清楚地给出了 TargetType="{x:Type windows:NxChromeWindow}" 所以我不明白 Window 如何在设计器中获得相同的样式。

你有想法吗?

若昂

4

1 回答 1

0

将此添加到 NxChromeWindow 的静态构造函数中:

static NxChromeWindow()
{
    DefaultStyleKeyProperty.OverrideMetadata(typeof(NxChromeWindow), new FrameworkPropertyMetadata(typeof(NxChromeWindow)));
}
于 2013-05-08T15:28:09.960 回答