如何隐藏透视标题
本文关键字:透视 标题 隐藏 何隐藏 | 更新日期: 2023-09-27 18:13:27
我希望有一个Pivot控件,有PivotItems,但没有Pivot项目标题文本在景观(这是一个画廊在景观模式,当恢复到肖像它应该再次显示PivotItems标题)。
使文本PivotItem.Header = ""
的解决方案不是很好,因为头文本占用的空间仍然被保留(因此有一个未使用的空白空间)。
我该怎么做?
您可以将pivot项目的顶部Margin
设置为负值以将它们向上移动:
<controls:PivotItem Header="item1" Margin="0,-100,0,0">
它不会删除标题,但您的图库项目将在它的顶部,从而有更多的可用空间。将此与您清除标题的想法结合起来,您可能会有一个解决方案。
一个更优雅的解决方案:用一个不可见(但没有折叠)的DataTemplate:
覆盖HeaderTemplate。<controls:Pivot.HeaderTemplate>
<DataTemplate>
<StackPanel Height="0" Width="0">
<TextBlock Text="{Binding}" />
</StackPanel>
</DataTemplate>
</controls:Pivot.HeaderTemplate>
您可以先保存所有数据透视项的标题,然后将所有数据透视项的标题设置为空字符串,之后所有数据透视项区域将消失。您可以使用保存的头信息来恢复它们。
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>();