我有一个Combobox的子类,具有自定义样式。它到目前为止工作,但视觉工作室的设计师无法显示我的组合框的设计视图。
错误讯息: 元素" [MyComboBox]"由于MyResourceLib.Controls.MyComboBox存在问题,无法显示: 无法创建" MyComboBox"
的实例以下是我的ComboBox的最小示例:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select name="jens_id[]" id="jens_id" required="">
<option ></option>
<option >1</option>
<option >2</option>
</select>
<select name="jens_id[]" id="jens_id" required="">
<option ></option>
<option >3</option>
<option >4</option>
</select>
XAML:
multiple
除此之外,使用组合框元素时出现错误:
找不到名为&#34; StyleComboBox&#34;的资源。资源名称区分大小写。
具有讽刺意味的是,它在运行时使用Style ...
有人可以帮助我吗?
答案 0 :(得分:1)
你做错了。 MyComboBox
应该是没有任何XAML文件的普通类:
public class MyComboBox : ComboBox
{
static MyComboBox()
{
DefaultStyleKeyProperty.OverrideMetadata(typeof(MyComboBox),
new System.Windows.FrameworkPropertyMetadata(typeof(MyComboBox)));
}
public MyComboBox()
{
}
}
然后,在位于项目根目录中名为ResourceDictionary
的文件夹中名为Generic.xaml
的{{1}}中定义自定义控件的默认样式:
Themes
这些名称是按照惯例,这是您为自定义控件定义默认样式的方法。再做 - 做对了。