如果要(重新)定义Pivot
标题的外观,则必须使用DataTemplate类型的Pivot.HeaderTemplate属性(这将影响其所有子级)。PivotItems
不能使用PivotItem.Header属性来完成,该属性不是模板,而是包含要绑定到DataTemplate
每个PivotItem
.
因此,理论上,您必须在代码(及其所有内容)中创建一个DataTemplatePivot.HeaderTemplate
,然后将其分配给您的属性。
一种解决方案可能是本文中解释的以下解决方案:
1.像这样创建您的 DataTemplate(或从资源中检索它):
string xaml =
@"<DataTemplate
xmlns=""http://schemas.microsoft.com/winfx/2006/xaml/presentation""
xmlns:x=""http://schemas.microsoft.com/winfx/2006/xaml"">
<StackPanel>
<TextBlock Text='bla' />
<TextBlock Text='blub' />
</StackPanel>
</DataTemplate>";
DataTemplate dt = (DataTemplate)XamlReader.Load(xaml);
2.然后分配dt
给您的Pivot.HeaderTemplate
财产:
yourPivot.HeaderTemplate = dt;
话虽如此,并确保它确实是您所需要的:
如果您不想更改Pivot
标题的外观,而只想更改绑定到标题的DataTemplate
内容(包含的文本等等......),那么您只需为您的PivotItem.Header
属性分配另一个值。
例如,带有DataTemplate
如下标题的标题:
<DataTemplate
xmlns=""http://schemas.microsoft.com/winfx/2006/xaml/presentation""
xmlns:x=""http://schemas.microsoft.com/winfx/2006/xaml"">
<StackPanel>
<TextBlock Text='{Binding Test1}' />
<TextBlock Text='{Binding Test2}' />
</StackPanel>
</DataTemplate>
和这样的 POCO:
public class TestPOCO
{
public string Test1 { get; set; }
public string Test2 { get; set; }
}
你可以改变你的PivotItem.Header
内容:
yourPivotItem.Header = new TextPOCO { Test1 = "newValue1", Test2 = "newValue2"};