阻止UWP应用的Pivot项目中的用户导航

时间:2017-12-10 20:55:30

标签: c# visual-studio uwp uwp-xaml

如何阻止用户点击UWP XAML应用中的Pivot项目,但仍显示每个支点项目的标题?例如,我有三个标记为“步骤1”,“步骤2”和“步骤3”的枢轴项。我希望每个项目都显示在数据透视表的顶部,但不是用户可以接通的。它们仅用于提升用户当前在该过程中的位置。

我在数据透视表的定义中尝试了IsLocked="true",但它只显示了我目前所在的数据透视表项目的标题。

1 个答案:

答案 0 :(得分:0)

我尝试过IsEnabled =“false”,但是没有用。然后我尝试将数据绑定到属性并使用setter来限制其值,这确实有效。

查看:

<Pivot SelectedIndex="{x:Bind PageViewModel.MyPivotIndex, Mode=TwoWay}">
    <PivotItem Header="Item1">
        <TextBlock Text="Stuff1"/>
    </PivotItem>
    <PivotItem Header="Item2" IsEnabled="False">
        <TextBlock Text="Stuff2"/>
    </PivotItem>
</Pivot>

视图模型:

private int _myPivotIndex;
public int MyPivotIndex
{
    get
    {
        return _myPivotIndex;
    }
    set
    {
        if (ConditionMet)
        {
            _myPivotIndex = value;
        }
        else
        {
            _myPivotIndex = 0;
            OnPropertyChanged("MyPivotIndex");
        }
    }
}

非MVVM选项应该有效,如果您在代码隐藏中使用“SelectionChanged”事件来检查条件,然后需要通过设置SelectedItem或SelectedIndex将其设置回Item1。

如果您希望“禁用”项目在鼠标悬停时不突出显示,则必须复制样式(https://msdn.microsoft.com/en-us/library/windows/apps/mt299144.aspx)并在“PointerOver”可视状态中修改它。