| File: VisualElement\VisualElement.Mapper.cs | Web Access |
| Project: src\src\Controls\src\Core\Controls.Core.csproj (Microsoft.Maui.Controls) |
#nullable disable using System; using Microsoft.Maui.Controls.Compatibility; using Microsoft.Maui.Handlers; namespace Microsoft.Maui.Controls { /// <include file="../../../docs/Microsoft.Maui.Controls/VisualElement.xml" path="Type[@FullName='Microsoft.Maui.Controls.VisualElement']/Docs/*" /> public partial class VisualElement { internal static new void RemapForControls() { RemapForControls(ViewHandler.ViewMapper, ViewHandler.ViewCommandMapper); } internal static void RemapForControls( IPropertyMapper<IView, IViewHandler> viewMapper, CommandMapper<IView, IViewHandler> commandMapper) { #if WINDOWS viewMapper.ReplaceMapping<IView, IViewHandler>(PlatformConfiguration.WindowsSpecific.VisualElement.AccessKeyHorizontalOffsetProperty.PropertyName, MapAccessKeyHorizontalOffset); viewMapper.ReplaceMapping<IView, IViewHandler>(PlatformConfiguration.WindowsSpecific.VisualElement.AccessKeyPlacementProperty.PropertyName, MapAccessKeyPlacement); viewMapper.ReplaceMapping<IView, IViewHandler>(PlatformConfiguration.WindowsSpecific.VisualElement.AccessKeyProperty.PropertyName, MapAccessKey); viewMapper.ReplaceMapping<IView, IViewHandler>(PlatformConfiguration.WindowsSpecific.VisualElement.AccessKeyVerticalOffsetProperty.PropertyName, MapAccessKeyVerticalOffset); #endif viewMapper.ReplaceMapping<IView, IViewHandler>(nameof(BackgroundColor), MapBackgroundColor); viewMapper.ReplaceMapping<IView, IViewHandler>(nameof(Page.BackgroundImageSource), MapBackgroundImageSource); viewMapper.ReplaceMapping<IView, IViewHandler>(SemanticProperties.DescriptionProperty.PropertyName, MapSemanticPropertiesDescriptionProperty); viewMapper.ReplaceMapping<IView, IViewHandler>(SemanticProperties.HintProperty.PropertyName, MapSemanticPropertiesHintProperty); viewMapper.ReplaceMapping<IView, IViewHandler>(SemanticProperties.HeadingLevelProperty.PropertyName, MapSemanticPropertiesHeadingLevelProperty); viewMapper.AppendToMapping<VisualElement, IViewHandler>(nameof(IViewHandler.ContainerView), MapContainerView); commandMapper.ModifyMapping<VisualElement, IViewHandler>(nameof(IView.Focus), MapFocus); } public static void MapBackgroundColor(IViewHandler handler, IView view) => handler.UpdateValue(nameof(Background)); public static void MapBackgroundImageSource(IViewHandler handler, IView view) => handler.UpdateValue(nameof(Background)); static void MapSemanticPropertiesHeadingLevelProperty(IViewHandler handler, IView element) => (element as VisualElement)?.UpdateSemanticsFromMapper(); static void MapSemanticPropertiesHintProperty(IViewHandler handler, IView element) => (element as VisualElement)?.UpdateSemanticsFromMapper(); static void MapSemanticPropertiesDescriptionProperty(IViewHandler handler, IView element) => (element as VisualElement)?.UpdateSemanticsFromMapper(); void UpdateSemanticsFromMapper() { UpdateSemantics(); Handler?.UpdateValue(nameof(IView.Semantics)); } static void MapContainerView(IViewHandler handler, VisualElement element) => element._platformContainerViewChanged?.Invoke(element, EventArgs.Empty); static void MapFocus(IViewHandler handler, VisualElement view, object args, Action<IElementHandler, IElement, object> baseMethod) { if (args is not FocusRequest fr || view is not VisualElement element) return; view.MapFocus(fr, baseMethod is null ? null : () => baseMethod?.Invoke(handler, view, args)); } } }