我想用ScrollViewer覆盖我的支点,但它不起作用,因为pivot拥有它的scrollviewer本身。所以我想知道如何禁用向左/向右滑动以更改Pivot的标签。
注意:无法使用IsHitTestVisible="True"
,因为它会禁用Pivot的所有互动,包括点击标题以更改标签
答案 0 :(得分:1)
如果要在数据透视表上禁用向左/向右滑动,但仍希望在点按标题时导航到不同的数据透视表项,则需要在指针为{时在数据透视表上的HorizontalScrollMode
上禁用ScrollViewer
{1}}或PointerEntered
首先要执行此操作我们需要获得PointerMoved
内部ScrollViewer
的访问权限。为此,我使用了一个帮助方法,我从SO的答案中复制了一个。
Pivot
现在位于public static T FindChildByName<T>(DependencyObject parent, string childName) where T : DependencyObject
{
if (parent == null) return null;
T foundChild = null;
int childrenCount = VisualTreeHelper.GetChildrenCount(parent);
for (int i = 0; i < childrenCount; i++)
{
var child = VisualTreeHelper.GetChild(parent, i);
T childType = child as T;
if (childType == null)
{
foundChild = FindChildByName<T>(child, childName);
if (foundChild != null) break;
}
else if (!string.IsNullOrEmpty(childName))
{
var frameworkElement = child as FrameworkElement;
if (frameworkElement != null && frameworkElement.Name == childName)
{
foundChild = (T)child;
break;
}
}
else
{
foundChild = (T)child;
break;
}
}
return foundChild;
}
,激活活动Pivot
,您的Pivot_Loaded
应显示如下内容。
Pivot_Loaded
这样做的全部想法来自blog帖子。
祝你好运。