XAML-Map-Control/MapControl/Avalonia/MapItem.Avalonia.cs

40 lines
1.3 KiB
C#
Raw Normal View History

2025-02-27 18:46:32 +01:00
namespace MapControl
2024-05-27 16:35:02 +02:00
{
public partial class MapItem
{
public static readonly StyledProperty<bool> AutoCollapseProperty =
DependencyPropertyHelper.AddOwner<MapItem, bool>(MapPanel.AutoCollapseProperty);
public static readonly StyledProperty<Location> LocationProperty =
DependencyPropertyHelper.AddOwner<MapItem, Location>(MapPanel.LocationProperty, null,
(item, oldValue, newValue) => item.UpdateMapTransform(newValue));
protected override void OnPointerPressed(PointerPressedEventArgs e)
{
2025-03-19 11:14:13 +01:00
if (e.Pointer.Type == PointerType.Touch)
2025-03-12 19:45:08 +01:00
{
2025-03-19 11:14:13 +01:00
UpdateSelection(e);
}
2025-03-19 11:14:13 +01:00
e.Handled = true;
}
protected override void OnPointerReleased(PointerReleasedEventArgs e)
{
UpdateSelection(e);
e.Handled = true;
}
private void UpdateSelection(PointerEventArgs e)
{
if (ItemsControl.ItemsControlFromItemContainer(this) is MapItemsControl mapItemsControl)
{
2025-03-19 11:14:13 +01:00
mapItemsControl.UpdateSelection(this,
e.KeyModifiers.HasFlag(KeyModifiers.Control),
e.KeyModifiers.HasFlag(KeyModifiers.Shift));
2025-03-12 19:45:08 +01:00
}
2024-05-27 16:35:02 +02:00
}
}
}