2012-06-22 90 views
0

我在WPF中工作,我需要設置HeaderedContentControl的標題的文本和工具提示。所以我想要做的是創建一個模板如下:如何以編程方式設置HeaderredContentControl的HeaderTemplate屬性

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; 

但是,當我運行該程序的標題顯示爲空。我究竟做錯了什麼?

希望有人能幫助,謝謝你在前進

回答

2

不知道你爲什麼在這樣一個方式使用模板。爲什麼不直接設置文本塊的標題屬性?

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> 
+0

謝謝您的答覆。其實這是我的第一次嘗試,但錯誤提出,這告訴我,我不能設置一個元素的頭,而不是我應該使用HeaderTemplate – Dante

+0

沒有辦法,我試過所有的例子發佈之前。應該在.net4中完美工作。你使用什麼版本的.net?你能提供提到的錯誤信息嗎? –

相關問題