Avalonia 12

This commit is contained in:
ClemensFischer 2026-04-14 09:53:19 +02:00
parent 411b94ea71
commit 3c28b9043b
2 changed files with 4 additions and 33 deletions

View file

@ -1,30 +0,0 @@
using Avalonia.Controls;
using Avalonia.Input;
namespace MapControl;
public partial class MapItem
{
protected override void OnPointerPressed(PointerPressedEventArgs e)
{
if (e.Pointer.Type != PointerType.Mouse &&
ItemsControl.ItemsControlFromItemContainer(this) is MapItemsControl mapItemsControl)
{
mapItemsControl.UpdateSelectionFromEvent(this, e);
}
e.Handled = true;
}
protected override void OnPointerReleased(PointerReleasedEventArgs e)
{
if (e.Pointer.Type == PointerType.Mouse &&
e.InitialPressMouseButton == MouseButton.Left &&
ItemsControl.ItemsControlFromItemContainer(this) is MapItemsControl mapItemsControl)
{
mapItemsControl.UpdateSelectionFromEvent(this, e);
}
e.Handled = true;
}
}

View file

@ -56,14 +56,15 @@ public partial class MapItemsControl
protected override bool ShouldTriggerSelection(Visual selectable, PointerEventArgs eventArgs)
{
return true;
return eventArgs.Pointer.Type != PointerType.Mouse ||
eventArgs.Properties.PointerUpdateKind == PointerUpdateKind.LeftButtonReleased;
}
public override bool UpdateSelectionFromEvent(UIElement container, RoutedEventArgs eventArgs)
{
if (SelectionMode == SelectionMode.Multiple &&
eventArgs is PointerEventArgs e &&
e.KeyModifiers.HasFlag(KeyModifiers.Shift))
eventArgs is PointerEventArgs pointerEventArgs &&
pointerEventArgs.KeyModifiers.HasFlag(KeyModifiers.Shift))
{
SelectItemsInRange((MapItem)container);
return true;