WPF UserControl继承&样式

时间:2011-06-11 08:34:49

标签: wpf inheritance user-controls

我遇到以下问题:我创建了一个自定义控件,它继承自已存在的控件,即

public class CustomButton : Button
{
    public Boolean AdditionalProperty { get; set; }
}

这没有问题,但是如果我尝试设置元素的样式,它就不会应用样式

<style TargetType="local:CustomButton">
    <!-- Setters -->
</style>

我做错了什么?我以编程方式添加CustomButton,这是问题吗?我也尝试了以下内容:

CustomButton customButton = new CustomButton();
customButton.Style = FindResource("<key>");
someGrid.Children.Add(customButton);

1 个答案:

答案 0 :(得分:1)

尝试TargetType="{x:Type local:CustomButton}"

编辑:

  

WPF支持启用的技术   指定某些值   类型Type的属性没有   需要x:类型标记扩展名   用法。相反,您可以指定   value作为命名类型的字符串。   这方面的例子是   ControlTemplate.TargetType和   Style.TargetType。支持这一点   没有通过提供行为   无论是类型转换器还是标记   扩展。相反,这是一个   延期行为通过实施   FrameworkElementFactory。

来源:MSDN