wpf - 设计器无法在窗口自定义控件上获得良好的样式

标签 wpf themes custom-controls designer

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

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 如何在设计器中获得相同的样式。

你有什么想法吗?

若昂

最佳答案

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

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

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

相关文章:

wpf - 如何对 PRISM CompositePresentationEvent 的发布者调用回调操作?

c# - 如何绑定(bind)来自 SQLite 的完整响应?

css - 通过 CSS 裁剪背景图片

wpf - 如何在共享 ResourceDictionary 中定义窗口实例的默认背景颜色?

c# - 如何使用控制代码 (ASP.NET) 保留特定于控制的 css

c# - 在特定列上键入关键字时进行搜索

wpf - 如何以编程方式创建包含内容的数据模板?

javascript - 具有自定义html主题的angular 4元素

java - 如何将 validator 指定为自定义控件的属性

wpf - 如何设置拆分按钮的样式