【问题标题】:Windows 10 UWP : Unable to stop Looping of Pivot ControlWindows 10 UWP:无法停止枢轴控制循环
【发布时间】:2016-01-26 15:51:36
【问题描述】:

我正在尝试停止在我的 Windows 10 UWP 应用程序中循环枢轴控制。 我没有找到任何解决方案。

任何人都知道停止循环枢轴控制。

我还想停止直接导航。 假设,我们在我的枢轴中有 6 个枢轴项,我不想直接跳到枢轴项 1 到枢轴项 4。它应该是向前推进的过程,即枢轴项 1 到枢轴项 2 或枢轴项 2 到枢轴项 3。

我尝试对枢轴控制的选择更改事件进行操作,但它对我不起作用。

var currentPivot = ((Pivot)sender);
var count = e.AddedItems.Count;

if ((currentPivot.SelectedIndex) > count)
{
    Pager.SelectedIndex = count - 1;
}

任何回应将不胜感激!

【问题讨论】:

  • 我认为你不能。您可以使用 FlipView 或水平 ListView,但您需要自己重新创建数据透视表头。

标签: windows-phone-8 windows-phone-8.1 windows-10 windows-10-mobile


【解决方案1】:

从 SDK 14393、Win10 1607 开始,现在可以:

<Pivot IsHeaderItemsCarouselEnabled="False"/>

【讨论】:

    【解决方案2】:

    如果您不想出现循环行为,您可以使用 FlipView 并将其样式更改为看起来像枢轴。

    【讨论】:

    • 我们不能通过枢轴控制来实现吗?
    • 我不知道有什么方法可以让你在枢纽中做到这一点。
    【解决方案3】:

    我是这样做的:

    1. 更改枢轴 ManipulationMode ManipulationMode="TranslateX"
    2. 添加 ManipulationDelta 和 ManipulationCompleted 处理程序

    我的支点现在看起来像:

    <Pivot ManipulationMode="TranslateX" x:Name="testPivot" ManipulationDelta="testPivot_ManipulationDelta" ManipulationCompleted="testPivot_ManipulationCompleted">
        <PivotItem Header="Page1" ></PivotItem>
        <PivotItem  Header="Page2"></PivotItem>
        <PivotItem  Header="Page3"></PivotItem>
    </Pivot>
    
    1. 实现处理程序。

    我的样子:

    double xDelta = 0;
    private void testPivot_ManipulationDelta(object sender, ManipulationDeltaRoutedEventArgs e)
    {
        xDelta += e.Delta.Translation.X;
    }
    
    private void testPivot_ManipulationCompleted(object sender, ManipulationCompletedRoutedEventArgs e)
    {
        if(xDelta > 0)
        {
    
            if (testPivot.SelectedIndex > 0)
                testPivot.SelectedIndex--;
        }
        else
        {
            if(xDelta < 0)
                if (testPivot.SelectedIndex < testPivot.Items.Count() - 1)
                    testPivot.SelectedIndex++;
    
        }
        xDelta = 0;
        e.Handled = true;
    }
    
    1. 现在您可能想要在枢轴项更改之间添加一些动画或进行一些其他调整

    【讨论】:

    • 我试过但没用。事件处理程序没有调用。它仍在循环枢轴项目。
    • 我在 github 上为你创建了一个简单的例子来展示它是如何工作的:github.com/bl00dra1n/PivotExample
    • 是的,我尝试运行您的应用程序。它没有用。我仍然可以循环枢轴项目..
    【解决方案4】:

    使用此代码。我希望这是对需要的完整逻辑的帮助。

    此处页面的构造函数:

        public PagePivot()
            {
                InitializeComponent();
                pivot.SelectionChanged += new SelectionChangedEventHandler(pivot_SelectionChanged); 
            }
    

    枢轴选择的事件监听器发生了变化:

     if (pivot.SelectedIndex == 0 && previousSelectedIndex == <number Of screens - 1>)
                pivot.SelectedIndex = <number Of screens - 1>;
            previousSelectedIndex = pivot.SelectedIndex;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-31
      相关资源
      最近更新 更多