我希望有一个Pivot控件具有PivotItems,但在横向上没有透视项目标题文本(它是横向模式下的图库,当它恢复为纵向时,它应该再次显示PivotItems标题)。如何隐藏PivotItem标题?
使文本PivotItem.Header = ""
的解决方案不好,因为标题文本占用的空间仍然保留(所以存在未使用的空白空间)。
我该怎么做?
我希望有一个Pivot控件具有PivotItems,但在横向上没有透视项目标题文本(它是横向模式下的图库,当它恢复为纵向时,它应该再次显示PivotItems标题)。如何隐藏PivotItem标题?
使文本PivotItem.Header = ""
的解决方案不好,因为标题文本占用的空间仍然保留(所以存在未使用的空白空间)。
我该怎么做?
您可以设置枢纽项目的顶部Margin
为负值,将它们移动起来:
<controls:PivotItem Header="item1" Margin="0,-100,0,0">
它不删除头,但你的库项目将在它的上面,因此有更多的空间可用。将此与您清除字幕的想法相结合,您就可以拥有解决方案。
一个更优雅的解决方案:只重写与非都看得到的deafult HeaderTemplate中(但没有崩溃)的DataTemplate:
<controls:Pivot.HeaderTemplate>
<DataTemplate>
<StackPanel Height="0" Width="0">
<TextBlock Text="{Binding}" />
</StackPanel>
</DataTemplate>
</controls:Pivot.HeaderTemplate>
这是Pivot.Header的解决方案,它不适用于PivotItem.Header – lisp
你可以先保存所有pivotitem的头,那么所有的pivotitems'标题设置为空字符串,之后,所有的枢轴头区域将消失。您可以使用保存的标题信息来恢复它们。
private void ResotorePivotItemHeaders()
{
if (_pivotItemHeaders.Count == pivot.Items.Count)
{
for (int i = 0; i < _pivotItemHeaders.Count; i++)
(pivot.Items[i] as PivotItem).Header = _pivotItemHeaders[i];
}
}
private void HidePivotItemHeaders()
{
if (pivot.Items.Count == 0)
return;
_pivotItemHeaders.Clear();
for (int i = 0; i<pivot.Items.Count; i++)
{
PivotItem item = pivot.Items[i] as PivotItem;
_pivotItemHeaders.Add(item.Header as String);
item.Header = "";
}
}
List<String> _pivotItemHeaders = new List<string>();
设置HeaderTemplate。 http://stackoverflow.com/questions/4239071/wp7-pivotcontrol-set-header-null – invalidusername