【发布时间】:2022-12-15 15:36:33
【问题描述】:
我有一个应用程序,我需要从 Xamarin 表单元素中提取渲染器,这在 Xamarin 表单中运行良好,我不确定我们如何在 MAUI 中实现这一点,任何输入都将不胜感激。我在渲染器中这样做
public AView ConvertFormsToNative(Xamarin.Forms.View view, Rectangle size)
{
var vRenderer = Platform.CreateRendererWithContext(view, this.Context);
var viewGroup = vRenderer.View;
vRenderer.Tracker.UpdateLayout();
var layoutParams = new ViewGroup.LayoutParams((int)size.Width, (int)size.Height);
viewGroup.LayoutParameters = layoutParams;
view.Layout(size);
viewGroup.Layout(0, 0, (int)view.WidthRequest, (int)view.HeightRequest);
return viewGroup;
}
这条特定的行帮助我从表单元素中获取渲染器
var vRenderer = Platform.CreateRendererWithContext(view, this.Context);
任何输入都会非常有帮助
【问题讨论】:
-
在 Maui 中,我们使用处理程序来增强自定义之外的跨平台控件的外观和行为。更多详情可以参考Customize controls with handlers。
-
@AlexandarMay-MSFT 非常感谢您的回复,我确实研究了它,但还没有进行足够的研究来确定我需要做的事情可以由处理程序和映射器完成,我特别需要做的是我的表单元素有所有的配置给我一个本地渲染的控制,这是我之前能够用 Platform.GetRenderedelement 做的,MAUI 提供了这样的任何东西吗?
-
我认为您可以在 MAUI 中通过
var renderer=Platform.Android.AppCompat.Platform.CreateRendererWithContext(element, _context);获得Renderer。 -
非常感谢您的回复。你可以通过这个source code docs看看它是否能给你一些启发。如果没有,您也可以在 Github 中创建一个new discussion。
-
@AlexandarMay-MSFT 上面的回答很有帮助,非常感谢,对之前的帖子感到抱歉
标签: custom-controls maui renderer