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

public class NxChromeWindow : Window


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

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


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

运行时一切正常。我看到2种不同的样式,但是使用设计师或Blend时。
很奇怪的事情发生了:

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

我不知道这怎么可能。它如何将子类样式应用于基类?我显然给了TargetType =“ {x:Type windows:NxChromeWindow}”,所以我不明白Window在设计器中如何获得相同的样式。

你有好主意吗?

若昂

最佳答案

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



static NxChromeWindow()
{
    DefaultStyleKeyProperty.OverrideMetadata(typeof(NxChromeWindow), new FrameworkPropertyMetadata(typeof(NxChromeWindow)));
}

关于wpf - 设计器无法在Window自定义控件上获得良好的样式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15406102/

10-11 22:45