zu ändern, wenn Sie Links/Rechts Swipe auf Pivot deaktivieren möchten, wollen aber trotzdem verschiedene Pivot Artikel navigieren, wenn Kopf angezapft wird, müssen Sie HorizontalScrollMode
auf ScrollViewer
auf dem Pivot deaktivieren, wenn Pointer PointerEntered
oder PointerMoved
ist diese Wir müssen zuerst tun Zugang zu ScrollViewer
Innen Pivot
gewinnen. Um dies zu tun, habe ich eine Helper-Methode verwendet, die ich aus einer der Antworten von SO kopiert habe.
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;
}
Jetzt in Pivot
, Activate Ereignis Pivot_Loaded
und Ihre Pivot_Loaded
sollte wie unten etwas zeigen.
private void Pivot_Loaded(object sender, RoutedEventArgs e)
{
Pivot pivot = sender as Pivot;
int count = VisualTreeHelper.GetChildrenCount(pivot);
ScrollViewer scrollViewer = FindChildByName<ScrollViewer>(pivot, "ScrollViewer");
scrollViewer.PointerEntered += (s, a) => { ((ScrollViewer)s).HorizontalScrollMode = ScrollMode.Disabled; };
scrollViewer.PointerMoved += (s, a) => { ((ScrollViewer)s).HorizontalScrollMode = ScrollMode.Disabled; };
scrollViewer.PointerExited += (s, a) => { ((ScrollViewer)s).HorizontalScrollMode = ScrollMode.Enabled; };
scrollViewer.PointerReleased += (s, a) => { ((ScrollViewer)s).HorizontalScrollMode = ScrollMode.Enabled; };
scrollViewer.PointerCaptureLost += (s, a) => { ((ScrollViewer)s).HorizontalScrollMode = ScrollMode.Enabled; };
}
Die ganze Idee, dies zu tun ist aus dieser blog Post.
Viel Glück.
Warum verwenden Sie das Pivot-Steuerelement selbst? Sie können StackPanel mit Orientation = "Horizontal" in einem ScrollViewer verwenden. –
Ich behalte das Projekt, das es benutzt, Mann. Wenn ich das Layout ändere, kostet es Zeit. –
Überprüfen Sie diese MSDN-Antwort, wenn es hilft: https://social.msdn.microsoft.com/Forums/windowsapps/en-US/59986d8e-e83e-450f-ae96-262236442c4a/uwp-how-to-disable-swipe-leftright -on-pivot-to-get-a-more-tablike-experience? Forum = wpdevelop –