在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
控件最终以Classic主题结束。如何使MyComboBox
从ComboBox
继承其样式?我正在用代码编写所有WPF,而不使用XAML标记。我怀疑和
Style
属性是否相关,但是我还没有弄清楚具体如何。 最佳答案
以下似乎有效:
public class MyComboBox : ComboBox
{
public MyComboBox()
{
SetResourceReference(Control.StyleProperty, typeof(ComboBox));
}
}