Windows 10 UWP:无法停止枢轴控制循环
Posted
技术标签:
【中文标题】Windows 10 UWP:无法停止枢轴控制循环【英文标题】:Windows 10 UWP : Unable to stop Looping of Pivot Control 【发布时间】: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,但您需要自己重新创建数据透视表头。 【参考方案1】:从 SDK 14393、Win10 1607 开始,现在可以:
<Pivot IsHeaderItemsCarouselEnabled="False"/>
【讨论】:
【参考方案2】:如果您不想出现循环行为,您可以使用 FlipView 并将其样式更改为看起来像枢轴。
【讨论】:
我们不能通过枢轴控制来实现吗? 我不知道有什么方法可以让你在枢纽中做到这一点。【参考方案3】:我是这样做的:
-
更改枢轴 ManipulationMode
ManipulationMode="TranslateX"
添加 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>
-
实现处理程序。
我的样子:
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;
-
现在您可能想要在枢轴项更改之间添加一些动画或进行一些其他调整
【讨论】:
我试过但没用。事件处理程序没有调用。它仍在循环枢轴项目。 我在 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;
【讨论】:
以上是关于Windows 10 UWP:无法停止枢轴控制循环的主要内容,如果未能解决你的问题,请参考以下文章
为啥我在 Windows 10 UWP 上收到“无法注册包”部署错误?
如何在 Windows 10 上的 UWP 中输出到控制台?
WIN10 Windows store应用商店无法安装打开UWP应用解决方案