如何以编程方式设置HeaderedContentControl的HeaderTemplate属性

时间:2012-06-22 18:49:40

标签: c# wpf header

我在WPF工作,我需要设置HeaderedContentControl的 Header 的Text和ToolTip。所以我要做的是创建一个模板如下:

 System.Windows.DataTemplate template = new System.Windows.DataTemplate();
 template.DataType = typeof(HeaderedContentControl);

 System.Windows.FrameworkElementFactory blockFactory = new System.Windows.FrameworkElementFactory(typeof(TextBlock));
 blockFactory.SetValue(TextBlock.TextProperty, "The Header Text");
 blockFactory.SetValue(TextBlock.ToolTipProperty, "The ToolTip");

 template.VisualTree = blockFactory;

 myHeaderedContentControl.HeaderTemplate = template;

但是当我运行程序时,标题显示为空。我做错了什么?

希望有人可以提供帮助,提前谢谢

1 个答案:

答案 0 :(得分:2)

不知道为什么要以这种方式使用模板。为什么不用文本块设置header属性?

myHeaderedContentControl.Header = new TextBlock 
{
    Text = "Some text", 
    ToolTip = "Some tooltip"
};

此外,最好在XAML中定义所有内容:

<HeaderedContentControl x:Name="control">
    <HeaderedContentControl.Header>
        <TextBlock Text="Some text" ToolTip="Some tooltip"/>
    </HeaderedContentControl.Header>
</HeaderedContentControl>