【发布时间】:2014-01-31 12:05:46
【问题描述】:
在 WPF/C# 中,我想定义一个继承自现有控件的新类,但它使用基本控件的样式。例如:
class MyComboBox : ComboBox
{
void MyExtraMethod(){...}
}
我通过以下方式动态切换到 Luna 风格:
var uri = new Uri("/PresentationFramework.Luna;V3.0.0.0;31bf3856ad364e35;component\\themes/Luna.normalcolor.xaml", UriKind.Relative);
var r = new ResourceDictionary();
r.Source = uri;
this.Resources = r;
虽然这会正确地使用 Luna 主题设置 ComboBox 的所有实例,但 MyComboBox 控件最终会使用经典主题。如何让MyComboBox 继承ComboBox 的样式?
我正在用代码编写我所有的 WPF,而不使用 XAML 标记。我怀疑 Style 和 BasedOn 属性是相关的,但我还没有弄清楚到底是怎么回事。
【问题讨论】:
标签: c# wpf inheritance