WPF ComboBox子类无法找到Style

时间:2017-06-28 09:44:35

标签: c# wpf xaml combobox

我有一个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 ...

有人可以帮助我吗?

1 个答案:

答案 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

这些名称是按照惯例,这是您为自定义控件定义默认样式的方法。再做 - 做对了。