如何在Maui iOS应用程序的编辑器控件中更改光标的颜色?
ozxc1zmp1#
虽然渲染器(从另一个答案)仍然工作,你不应该再使用它了。它仅出于与Xamarin.Forms的兼容性原因而存在。您要做的是创建一个修改Map器。关于如何做到这一点的官方文档可以在here找到。如果您想对应用中的所有Entry控件执行此操作,可以执行以下操作:
Entry
Microsoft.Maui.Handlers.EntryHandler.Mapper.AppendToMapping("CursorColor", (handler, view) => { #if IOS handler.PlatformView.TintColor = UIKit.UIColor.Green; #endif });
将其放置在任何你喜欢的地方,在你的应用启动。你的MauiProgram.cs如果你想为Entry的一个特定示例这样做,你想创建一个继承并在上面的代码中检查。例如,它看起来像这样:
MauiProgram.cs
class MyGreenEntry : Entry { } Microsoft.Maui.Handlers.EntryHandler.Mapper.AppendToMapping("CursorColor", (handler, view) => { #if IOS if (view is MyGreenEntry) { handler.PlatformView.TintColor = UIKit.UIColor.Green; } #endif });
我在这里创建了一个小示例:https://github.com/jfversluis/MauiCustomCursorColoriOSSample,并在这里的博客文章中写了更多关于它的内容:https://blog.verslu.is/maui/change-cursor-color-maui-ios/
EditorHandler
EntryHandler
Editor
kxe2p93d2#
你可以在.NET MAUI中使用Using Custom Renderers来实现它。下面是详细的步骤:1.在Project文件夹中创建MyEditor.cs:
MyEditor.cs
public class MyEditor : Editor { }
1.在Platform/iOS下创建平台实现文件MyEditorRenderer.cs:
MyEditorRenderer.cs
[Obsolete] public class MyEditorRenderer : EditorRenderer { protected override void OnElementChanged(ElementChangedEventArgs<Editor> e) { base.OnElementChanged(e); if (Control != null) { Control.TintColor = UIColor.Green; } } }
1.在MauiProgram.cs中注册我们的处理程序如下:
.ConfigureMauiHandlers(handlers => { #if IOS handlers.AddHandler(typeof(MyEditor), typeof(MyEditorRenderer)); #endif });
1.最后,为编辑器控件创建一个示例,然后运行它进行检查。
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" x:Class="MAUIProjectWithRenderer.MainPage" xmlns:editor="clr-namespace:CustomRenderer" > <VerticalStacklayout> <editor:MyEditor /> </VerticalStacklayout> </ContentPage>
2条答案
按热度按时间ozxc1zmp1#
虽然渲染器(从另一个答案)仍然工作,你不应该再使用它了。它仅出于与Xamarin.Forms的兼容性原因而存在。
您要做的是创建一个修改Map器。关于如何做到这一点的官方文档可以在here找到。
如果您想对应用中的所有
Entry
控件执行此操作,可以执行以下操作:将其放置在任何你喜欢的地方,在你的应用启动。你的
MauiProgram.cs
如果你想为
Entry
的一个特定示例这样做,你想创建一个继承并在上面的代码中检查。例如,它看起来像这样:我在这里创建了一个小示例:https://github.com/jfversluis/MauiCustomCursorColoriOSSample,并在这里的博客文章中写了更多关于它的内容:https://blog.verslu.is/maui/change-cursor-color-maui-ios/
EditorHandler
而不是EntryHandler
,当然,如果你只想在一个类型上使用Editor
,那就继承Editor
。我更新了上面的repo中的示例代码,以包含Editor
的代码。kxe2p93d2#
你可以在.NET MAUI中使用Using Custom Renderers来实现它。
下面是详细的步骤:
1.在Project文件夹中创建
MyEditor.cs
:1.在Platform/iOS下创建平台实现文件
MyEditorRenderer.cs
:1.在
MauiProgram.cs
中注册我们的处理程序如下:1.最后,为编辑器控件创建一个示例,然后运行它进行检查。