Style BasedOn用户定义的样式



我有一个DefaultStyle和另一个像这样定义的Style

<Style TargetType="{x:Type my:CustomButton}" BasedOn="{StaticResource DefaultStyle}" x:Key="DefaultCustomButton"> ...

然后,定义了这个样式,我有

<Style TargetType="{x:Type my:CustomButton}" BasedOn="{StaticResource DefaultCustomButton}" />

到目前为止没有问题。

现在,我想重用第二种风格的一部分,所以我定义如下:

<Style TargetType="{x:Type my:CustomToggleButton}" BasedOn="{StaticResource DefaultCustomButton}" x:Key="DefaultToggleButton"> ...

然后

<Style TargetType="{x:Type my:CustomToggleButton}" BasedOn="{StaticResource DefaultToggleButton}" />

最后,我在一个窗口中使用了新的按钮:

<my:CustomToggleButton x:Name="measurableButton">Text Goes Here</my:CustomToggleButton>

这时,我得到了这个错误:

"无法将属性'BasedOn'中的值转换为类型的对象。"System.Windows.Style"。只能基于目标类型的样式吗这是基本类型'CustomToggleButton'。

明显吗?CustomToggleButton必须从CustomButton派生吗?

请参阅此处的注释(页面下方的黄色部分):http://msdn.microsoft.com/en-us/library/system.windows.style.basedon.aspx

所以你的CustomToggleButton一定来源于CustomButton。我假设(现在)基于错误,它没有。

相关内容

  • 没有找到相关文章

最新更新