Skip to content
Merged
Show file tree
Hide file tree
Changes from 5 commits
Commits
Show all changes
16 commits
Select commit Hold shift + click to select a range
0d4220b
[ci] Run android on MAUI-Dnceng (#33997)
rmarinho Feb 23, 2026
24b8c07
[Android, iOS, Mac] Fixed Entry ClearButton not visible on dark theme…
TamilarasanSF4853 Feb 24, 2026
f81add2
Update MAUI dogfooding scripts to work with new Azure DevOps instance…
jfversluis Feb 24, 2026
49bc594
Add MauiXamlHotReload property for IDE communication (#34028)
StephaneDelcroix Feb 24, 2026
3f5d0c5
[build] clean up old `$(DebugType)` MSBuild settings (#34216)
jonathanpeppers Feb 24, 2026
7499d82
Add MapElement.IsVisible and MapElement.ZIndex properties (#33993)
jfversluis Feb 25, 2026
4cc0dc5
Fix empty string binding to nullable value types (#33536)
StephaneDelcroix Feb 25, 2026
65167b3
[XSG] Fix Setter.Value property element lookup for MauiGlobalUri name…
StephaneDelcroix Feb 25, 2026
bd82423
[XSG] Fix SourceGen OnPlatform default View null handling (#34186)
StephaneDelcroix Feb 25, 2026
420846b
Fix SourceGen nullability output for #34130 (#34193)
StephaneDelcroix Feb 25, 2026
46e34d4
Fix RelayCommand binding inference for On*Async patterns (#34183)
StephaneDelcroix Feb 25, 2026
073c8cb
Clarify git workflow: push to PR branch, don't create separate branch…
StephaneDelcroix Feb 25, 2026
1ff02fa
[automated] Merge branch 'main' => 'net11.0' (#34203)
github-actions[bot] Feb 25, 2026
4c2557c
Reset files to net11.0
github-actions[bot] Feb 26, 2026
dcd44b3
Add Circle, Polygon, and Polyline click events for Map control (#29101)
kubaflo Feb 26, 2026
288c464
[automated] Merge branch 'main' => 'net11.0' (#34252)
PureWeen Feb 26, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions eng/pipelines/arcade/setup-test-env.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@ steps:
fetchDepth: 1
clean: true

- template: /eng/pipelines/common/enable-kvm.yml@self

- template: /eng/pipelines/common/provision.yml@self
parameters:
checkoutDirectory: '$(System.DefaultWorkingDirectory)'
Expand Down
7 changes: 7 additions & 0 deletions eng/pipelines/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -121,6 +121,13 @@ parameters:
demands:
- ImageOverride -equals 1ESPT-Ubuntu22.04

- name: AndroidPoolLinux
type: object
default:
name: MAUI-DNCENG
demands:
- ImageOverride -equals 1ESPT-Ubuntu22.04


# Condition for MacOSPool comparison lanes (non-ARM64)
# Currently disabled - both pools use MAUI self-hosted since Xcode 26.2 isn't available on Azure Pipelines x64.
Expand Down
8 changes: 1 addition & 7 deletions eng/pipelines/common/device-tests-steps.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,14 +35,8 @@ steps:
continueOnError: true
timeoutInMinutes: 60

# Enable KVM for Android builds on Linux
- ${{ if and(ne(parameters.buildType, 'buildOnly'), eq(parameters.platform, 'android')) }}:
- bash: |
echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
sudo udevadm control --reload-rules
sudo udevadm trigger --name-match=kvm
displayName: Enable KVM
condition: and(succeeded(), eq(variables['Agent.OS'], 'Linux'))
- template: enable-kvm.yml

# Provision the various SDKs that are needed
- template: provision.yml
Expand Down
8 changes: 8 additions & 0 deletions eng/pipelines/common/enable-kvm.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# Enable KVM for Android tests on Linux
steps:
- bash: |
echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
sudo udevadm control --reload-rules
sudo udevadm trigger --name-match=kvm
displayName: Enable KVM
condition: and(succeeded(), eq(variables['Agent.OS'], 'Linux'))
8 changes: 1 addition & 7 deletions eng/pipelines/common/ui-tests-steps.yml
Original file line number Diff line number Diff line change
Expand Up @@ -50,14 +50,8 @@ steps:
continueOnError: true
timeoutInMinutes: 60

# Enable KVM for Android builds on Linux
- ${{ if and(ne(parameters.buildType, 'buildOnly'), eq(parameters.platform, 'android')) }}:
- bash: |
echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
sudo udevadm control --reload-rules
sudo udevadm trigger --name-match=kvm
displayName: Enable KVM
condition: and(succeeded(), eq(variables['Agent.OS'], 'Linux'))
- template: enable-kvm.yml

- ${{ if eq(parameters.platform, 'catalyst')}}:
- bash: |
Expand Down
12 changes: 12 additions & 0 deletions src/Controls/Maps/src/Circle.cs
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
using System;
using Microsoft.Maui.Devices.Sensors;
using Microsoft.Maui.Graphics;
using Microsoft.Maui.Maps;
Expand Down Expand Up @@ -56,5 +57,16 @@ public Color FillColor
get => (Color)GetValue(FillColorProperty);
set => SetValue(FillColorProperty, value);
}

/// <summary>
/// Occurs when the user clicks/taps on the circle element
/// </summary>
public event EventHandler? CircleClicked;

void IMapElement.Clicked()
{
CircleClicked?.Invoke(this, EventArgs.Empty);
}

}
}
2 changes: 2 additions & 0 deletions src/Controls/Maps/src/HandlerImpl/MapElement.Impl.cs
Original file line number Diff line number Diff line change
Expand Up @@ -19,5 +19,7 @@ public partial class MapElement : IMapElement
float IStroke.StrokeDashOffset => throw new NotImplementedException();

float IStroke.StrokeMiterLimit => throw new NotImplementedException();

void IMapElement.Clicked() => throw new NotImplementedException();
}
}
36 changes: 36 additions & 0 deletions src/Controls/Maps/src/MapElement.cs
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,20 @@ public partial class MapElement : Element
typeof(MapElement),
5f);

/// <summary>Bindable property for <see cref="IsVisible"/>.</summary>
public static readonly BindableProperty IsVisibleProperty = BindableProperty.Create(
nameof(IsVisible),
typeof(bool),
typeof(MapElement),
true);

/// <summary>Bindable property for <see cref="ZIndex"/>.</summary>
public static readonly BindableProperty ZIndexProperty = BindableProperty.Create(
nameof(ZIndex),
typeof(int),
typeof(MapElement),
0);

/// <summary>
/// Gets or sets the stroke color. This is a bindable property.
/// </summary>
Expand All @@ -45,6 +59,28 @@ public float StrokeWidth
set => SetValue(StrokeWidthProperty, value);
}

/// <summary>
/// Gets or sets a value indicating whether the map element is visible on the map.
/// The default value is <see langword="true"/>.
/// This is a bindable property.
/// </summary>
public bool IsVisible
{
get => (bool)GetValue(IsVisibleProperty);
set => SetValue(IsVisibleProperty, value);
}

/// <summary>
/// Gets or sets the z-index of the map element, which controls its draw order relative to other elements.
/// Higher values are drawn on top of lower values. The default value is <c>0</c>.
/// This is a bindable property.
/// </summary>
public int ZIndex
{
get => (int)GetValue(ZIndexProperty);
set => SetValue(ZIndexProperty, value);
}

/// <summary>
/// Gets or sets the platform counterpart of this map element.
/// </summary>
Expand Down
12 changes: 12 additions & 0 deletions src/Controls/Maps/src/Polygon.cs
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using Microsoft.Maui.Devices.Sensors;
using Microsoft.Maui.Graphics;
using Microsoft.Maui.Maps;

namespace Microsoft.Maui.Controls.Maps
{
Expand Down Expand Up @@ -31,6 +33,16 @@ public Color FillColor
/// </summary>
public IList<Location> Geopath { get; }

/// <summary>
/// Occurs when the user clicks/taps on the polygon element
/// </summary>
public event EventHandler? PolygonClicked;

void IMapElement.Clicked()
{
PolygonClicked?.Invoke(this, EventArgs.Empty);
}

/// <summary>
/// Initializes a new instance of the <see cref="Polygon"/> class.
/// </summary>
Expand Down
12 changes: 12 additions & 0 deletions src/Controls/Maps/src/Polyline.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using Microsoft.Maui.Devices.Sensors;
using Microsoft.Maui.Maps;

namespace Microsoft.Maui.Controls.Maps
{
Expand All @@ -14,6 +16,16 @@ public partial class Polyline : MapElement
/// </summary>
public IList<Location> Geopath { get; }

/// <summary>
/// Occurs when the user clicks/taps on the polyline element
/// </summary>
public event EventHandler? PolylineClicked;

void IMapElement.Clicked()
{
PolylineClicked?.Invoke(this, EventArgs.Empty);
}

/// <summary>
/// Initializes a new instance of the <see cref="Polyline"/> class.
/// </summary>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,14 @@

#nullable enable
static readonly Microsoft.Maui.Controls.Maps.Map.RegionProperty -> Microsoft.Maui.Controls.BindableProperty!
Microsoft.Maui.Controls.Maps.Circle.CircleClicked -> System.EventHandler?
Microsoft.Maui.Controls.Maps.Map.Region.get -> Microsoft.Maui.Maps.MapSpan?
Microsoft.Maui.Controls.Maps.Map.Region.set -> void
Microsoft.Maui.Controls.Maps.MapElement.IsVisible.get -> bool
Microsoft.Maui.Controls.Maps.MapElement.IsVisible.set -> void
Microsoft.Maui.Controls.Maps.MapElement.ZIndex.get -> int
Microsoft.Maui.Controls.Maps.MapElement.ZIndex.set -> void
Microsoft.Maui.Controls.Maps.Polygon.PolygonClicked -> System.EventHandler?
Microsoft.Maui.Controls.Maps.Polyline.PolylineClicked -> System.EventHandler?
static readonly Microsoft.Maui.Controls.Maps.Map.RegionProperty -> Microsoft.Maui.Controls.BindableProperty!
static readonly Microsoft.Maui.Controls.Maps.MapElement.IsVisibleProperty -> Microsoft.Maui.Controls.BindableProperty!
static readonly Microsoft.Maui.Controls.Maps.MapElement.ZIndexProperty -> Microsoft.Maui.Controls.BindableProperty!
12 changes: 11 additions & 1 deletion src/Controls/Maps/src/PublicAPI/net-ios/PublicAPI.Unshipped.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,14 @@

#nullable enable
static readonly Microsoft.Maui.Controls.Maps.Map.RegionProperty -> Microsoft.Maui.Controls.BindableProperty!
Microsoft.Maui.Controls.Maps.Circle.CircleClicked -> System.EventHandler?
Microsoft.Maui.Controls.Maps.Map.Region.get -> Microsoft.Maui.Maps.MapSpan?
Microsoft.Maui.Controls.Maps.Map.Region.set -> void
Microsoft.Maui.Controls.Maps.MapElement.IsVisible.get -> bool
Microsoft.Maui.Controls.Maps.MapElement.IsVisible.set -> void
Microsoft.Maui.Controls.Maps.MapElement.ZIndex.get -> int
Microsoft.Maui.Controls.Maps.MapElement.ZIndex.set -> void
Microsoft.Maui.Controls.Maps.Polygon.PolygonClicked -> System.EventHandler?
Microsoft.Maui.Controls.Maps.Polyline.PolylineClicked -> System.EventHandler?
static readonly Microsoft.Maui.Controls.Maps.Map.RegionProperty -> Microsoft.Maui.Controls.BindableProperty!
static readonly Microsoft.Maui.Controls.Maps.MapElement.IsVisibleProperty -> Microsoft.Maui.Controls.BindableProperty!
static readonly Microsoft.Maui.Controls.Maps.MapElement.ZIndexProperty -> Microsoft.Maui.Controls.BindableProperty!
Original file line number Diff line number Diff line change
@@ -1,4 +1,14 @@

#nullable enable
static readonly Microsoft.Maui.Controls.Maps.Map.RegionProperty -> Microsoft.Maui.Controls.BindableProperty!
Microsoft.Maui.Controls.Maps.Circle.CircleClicked -> System.EventHandler?
Microsoft.Maui.Controls.Maps.Map.Region.get -> Microsoft.Maui.Maps.MapSpan?
Microsoft.Maui.Controls.Maps.Map.Region.set -> void
Microsoft.Maui.Controls.Maps.MapElement.IsVisible.get -> bool
Microsoft.Maui.Controls.Maps.MapElement.IsVisible.set -> void
Microsoft.Maui.Controls.Maps.MapElement.ZIndex.get -> int
Microsoft.Maui.Controls.Maps.MapElement.ZIndex.set -> void
Microsoft.Maui.Controls.Maps.Polygon.PolygonClicked -> System.EventHandler?
Microsoft.Maui.Controls.Maps.Polyline.PolylineClicked -> System.EventHandler?
static readonly Microsoft.Maui.Controls.Maps.Map.RegionProperty -> Microsoft.Maui.Controls.BindableProperty!
static readonly Microsoft.Maui.Controls.Maps.MapElement.IsVisibleProperty -> Microsoft.Maui.Controls.BindableProperty!
static readonly Microsoft.Maui.Controls.Maps.MapElement.ZIndexProperty -> Microsoft.Maui.Controls.BindableProperty!
Original file line number Diff line number Diff line change
@@ -1,4 +1,14 @@

#nullable enable
static readonly Microsoft.Maui.Controls.Maps.Map.RegionProperty -> Microsoft.Maui.Controls.BindableProperty!
Microsoft.Maui.Controls.Maps.Circle.CircleClicked -> System.EventHandler?
Microsoft.Maui.Controls.Maps.Map.Region.get -> Microsoft.Maui.Maps.MapSpan?
Microsoft.Maui.Controls.Maps.Map.Region.set -> void
Microsoft.Maui.Controls.Maps.MapElement.IsVisible.get -> bool
Microsoft.Maui.Controls.Maps.MapElement.IsVisible.set -> void
Microsoft.Maui.Controls.Maps.MapElement.ZIndex.get -> int
Microsoft.Maui.Controls.Maps.MapElement.ZIndex.set -> void
Microsoft.Maui.Controls.Maps.Polygon.PolygonClicked -> System.EventHandler?
Microsoft.Maui.Controls.Maps.Polyline.PolylineClicked -> System.EventHandler?
static readonly Microsoft.Maui.Controls.Maps.Map.RegionProperty -> Microsoft.Maui.Controls.BindableProperty!
static readonly Microsoft.Maui.Controls.Maps.MapElement.IsVisibleProperty -> Microsoft.Maui.Controls.BindableProperty!
static readonly Microsoft.Maui.Controls.Maps.MapElement.ZIndexProperty -> Microsoft.Maui.Controls.BindableProperty!
Original file line number Diff line number Diff line change
@@ -1,4 +1,14 @@

#nullable enable
static readonly Microsoft.Maui.Controls.Maps.Map.RegionProperty -> Microsoft.Maui.Controls.BindableProperty!
Microsoft.Maui.Controls.Maps.Circle.CircleClicked -> System.EventHandler?
Microsoft.Maui.Controls.Maps.Map.Region.get -> Microsoft.Maui.Maps.MapSpan?
Microsoft.Maui.Controls.Maps.Map.Region.set -> void
Microsoft.Maui.Controls.Maps.MapElement.IsVisible.get -> bool
Microsoft.Maui.Controls.Maps.MapElement.IsVisible.set -> void
Microsoft.Maui.Controls.Maps.MapElement.ZIndex.get -> int
Microsoft.Maui.Controls.Maps.MapElement.ZIndex.set -> void
Microsoft.Maui.Controls.Maps.Polygon.PolygonClicked -> System.EventHandler?
Microsoft.Maui.Controls.Maps.Polyline.PolylineClicked -> System.EventHandler?
static readonly Microsoft.Maui.Controls.Maps.Map.RegionProperty -> Microsoft.Maui.Controls.BindableProperty!
static readonly Microsoft.Maui.Controls.Maps.MapElement.IsVisibleProperty -> Microsoft.Maui.Controls.BindableProperty!
static readonly Microsoft.Maui.Controls.Maps.MapElement.ZIndexProperty -> Microsoft.Maui.Controls.BindableProperty!
12 changes: 11 additions & 1 deletion src/Controls/Maps/src/PublicAPI/net/PublicAPI.Unshipped.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,14 @@

#nullable enable
static readonly Microsoft.Maui.Controls.Maps.Map.RegionProperty -> Microsoft.Maui.Controls.BindableProperty!
Microsoft.Maui.Controls.Maps.Circle.CircleClicked -> System.EventHandler?
Microsoft.Maui.Controls.Maps.Map.Region.get -> Microsoft.Maui.Maps.MapSpan?
Microsoft.Maui.Controls.Maps.Map.Region.set -> void
Microsoft.Maui.Controls.Maps.MapElement.IsVisible.get -> bool
Microsoft.Maui.Controls.Maps.MapElement.IsVisible.set -> void
Microsoft.Maui.Controls.Maps.MapElement.ZIndex.get -> int
Microsoft.Maui.Controls.Maps.MapElement.ZIndex.set -> void
Microsoft.Maui.Controls.Maps.Polygon.PolygonClicked -> System.EventHandler?
Microsoft.Maui.Controls.Maps.Polyline.PolylineClicked -> System.EventHandler?
static readonly Microsoft.Maui.Controls.Maps.Map.RegionProperty -> Microsoft.Maui.Controls.BindableProperty!
static readonly Microsoft.Maui.Controls.Maps.MapElement.IsVisibleProperty -> Microsoft.Maui.Controls.BindableProperty!
static readonly Microsoft.Maui.Controls.Maps.MapElement.ZIndexProperty -> Microsoft.Maui.Controls.BindableProperty!
Original file line number Diff line number Diff line change
@@ -1,4 +1,14 @@

#nullable enable
static readonly Microsoft.Maui.Controls.Maps.Map.RegionProperty -> Microsoft.Maui.Controls.BindableProperty!
Microsoft.Maui.Controls.Maps.Circle.CircleClicked -> System.EventHandler?
Microsoft.Maui.Controls.Maps.Map.Region.get -> Microsoft.Maui.Maps.MapSpan?
Microsoft.Maui.Controls.Maps.Map.Region.set -> void
Microsoft.Maui.Controls.Maps.MapElement.IsVisible.get -> bool
Microsoft.Maui.Controls.Maps.MapElement.IsVisible.set -> void
Microsoft.Maui.Controls.Maps.MapElement.ZIndex.get -> int
Microsoft.Maui.Controls.Maps.MapElement.ZIndex.set -> void
Microsoft.Maui.Controls.Maps.Polygon.PolygonClicked -> System.EventHandler?
Microsoft.Maui.Controls.Maps.Polyline.PolylineClicked -> System.EventHandler?
static readonly Microsoft.Maui.Controls.Maps.Map.RegionProperty -> Microsoft.Maui.Controls.BindableProperty!
static readonly Microsoft.Maui.Controls.Maps.MapElement.IsVisibleProperty -> Microsoft.Maui.Controls.BindableProperty!
static readonly Microsoft.Maui.Controls.Maps.MapElement.ZIndexProperty -> Microsoft.Maui.Controls.BindableProperty!
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
<?xml version="1.0" encoding="UTF-8"?>
<ContentPage
xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="Maui.Controls.Sample.Pages.MapsGalleries.MapElementClickGallery"
xmlns:maps="http://schemas.microsoft.com/dotnet/2021/maui/maps"
xmlns:sensors="clr-namespace:Microsoft.Maui.Devices.Sensors;assembly=Microsoft.Maui.Essentials"
Title="MapElement Click Events">
<Grid RowDefinitions="Auto,*">
<Label x:Name="StatusLabel"
Text="Tap on a circle, polygon, or polyline"
Padding="10"
FontSize="16"
HorizontalTextAlignment="Center" />
<maps:Map x:Name="map" Grid.Row="1">
<x:Arguments>
<maps:MapSpan>
<x:Arguments>
<sensors:Location>
<x:Arguments>
<x:Double>37.79752</x:Double>
<x:Double>-122.40183</x:Double>
</x:Arguments>
</sensors:Location>
<x:Double>0.02</x:Double>
<x:Double>0.02</x:Double>
</x:Arguments>
</maps:MapSpan>
</x:Arguments>
</maps:Map>
</Grid>
</ContentPage>
Loading
Loading