如何隐藏单个 PivotItem 的可见性

Posted

技术标签:

【中文标题】如何隐藏单个 PivotItem 的可见性【英文标题】:How to Hide Visibility of Individual PivotItem 【发布时间】:2015-01-10 14:34:41 【问题描述】:

我的页面中有一些数据透视项,根据应用程序是否处于试用模式,我需要显示或隐藏其中一个数据透视项。直接在 XAML 或 C# 中设置 PivotItem 的可见性只会隐藏 PivotItem 中的内容,而不是实际的 PivotItem 本身。我怎样才能做到这一点?

在测试中我尝试了以下两种方法

Page.xaml

<phone:PivotItem x:Name="PivotItem2" Visibility="Collapsed"
                         Header="2">
                ...
</<phone:PivotItem>

Page.xaml.cs

 protected override void OnNavigatedTo(NavigationEventArgs e)
    
        base.OnNavigatedTo(e);

        //Check trial state and set PivotItem
        if ((Application.Current as App).IsTrial)
        
            PivotItem2.Visibility = Visibility.Collapsed;
        
        else
        
            PivotItem2.Visibility = Visibility.Visible;
        
    

【问题讨论】:

您是否尝试过删除 PivotItem? 非试用状态下我还是需要展示一下。 也许你可以这样做:准备整个枢轴,在页面的构造函数中检查是否试用模式 - 如果是 - 删除枢轴项。 【参考方案1】:

您只能使用 Pivot.Items 集合在您的 Pivot 中动态删除或添加 PivotItems。你不能隐藏它们。根据您的要求,您可以这样做:

//Check trial state and set PivotItem
if ((Application.Current as App).IsTrial)

    PivotControl.Items.Remove(PivotControl.Items.Single(p => ((PivotItem)p).Name == "Name_PivotItem"));

else

    PivotControl.Items.Add(PivotControl.Items.Single(p => ((PivotItem)p).Name == "Name_PivotItem"));

【讨论】:

如果我需要将其添加为 Pivot 控件中的第二个数据透视项,索引 1。 您需要解决 PivotItem 的“索引”属性。

以上是关于如何隐藏单个 PivotItem 的可见性的主要内容,如果未能解决你的问题,请参考以下文章

IE10:“可见性:可见”在“可见性:隐藏”元素的伪元素之前

隐藏SSRS矩阵中的多个列

切换 div 的可见性属性

更改列表视图中图像的可见性

C# 窗口可见性,折叠和隐藏

如何检测控件的可见性?