Touch in the NavTreeControl
- Last UpdatedAug 21, 2026
- 1 minute read
You can extract code from the NavTreeControl or the NavBreadcrumbControl and use it as a module within your app to support touch manipulation gestures, such as touch up and down, and for converting touch to mouse, for example, a tap to a mouse click. This is set by the Boolean property ConvertToMouse. The controls include code for processing swipes and other touch manipulations. For example, you can convert a down gesture to scroll up a drop down list, as shown below:
case TouchType.ManipulationDelta:
if (touchArgs is ManipulationTouchArgs manipulationArgs)
{
if (touchArgs.InteractionMode == InteractionMode.SystemMode)
{
if (manipulationArgs.Delta != null && (touchArgs.TouchPointsCount == 1 || manipulationArgs.IsInertia) && this.swipestarted)
{
var scrollViewer = (touchArgs.Sender as Popup)?.Child.FindChildOfType<ScrollViewer>();
var direction = TouchUtil.GetGestureDirection(manipulationArgs.Cumulative);
var deltaX = manipulationArgs.Delta.Translation.X;
var deltaY = manipulationArgs.Delta.Translation.Y;
Logger.LogCustom(CustomLogFlags.ProcessGesture, () => quot;ManipulationDelta, deltaX = {deltaX}, deltaY = {deltaY}");
if (direction == GestureDirection.Down || direction == GestureDirection.Up)
{
ScrollViewerHelper.ScrollToVerticalOffset(scrollViewer, -deltaY);
}
if (direction == GestureDirection.Left || direction == GestureDirection.Right)
{
ScrollViewerHelper.ScrollToHorizontalOffset(scrollViewer, -deltaX);
}
result.Handled = true;
}
}
The full path names for these navigation controls are:
- <root installation directory>:\Program Files (x86)\ArchestrA\Framework\AcfSdk\Samples\NavTree\View\NavTreeControl.xaml.cs
- <root installation directory>:\Program Files (x86)\ArchestrA\Framework\AcfSdk\Samples\NavBreadcrumb\NavBreadcrumbControl.xaml.cs