gpt4 book ai didi

c# - 如何使用 Custom Renderer 渲染不同的组件

转载 作者:行者123 更新时间:2023-11-30 23:04:09 26 4
gpt4 key购买 nike

我有一个示例 Xamarin.Forms 共享项目,其中有一个 MainPage.xaml。为了在 iOS 上实现 Material 设计外观,我正在尝试使用自定义渲染器为组件提供所需的外观。最近我发现了一些 Xamarin.iOS 的依赖项可以做到这一点。

我想知道我需要做什么才能使用 CustomRenderer 从 Xamarin.iOS 依赖项呈现组件。

这是我的条目的 iOS 自定义渲染器:

[assembly: ExportRenderer (typeof(CustomEntry), typeof(CustomEntryRenderer))]
namespace MCTest.iOS
{
public class CustomEntryRenderer : EntryRenderer
{

protected override void OnElementChanged(ElementChangedEventArgs<Entry> e)
{
base.OnElementChanged(e);

if (Control != null)
{
// do whatever
}
}
}
}

在这里我可以自定义条目,但真正想要做的是从外部 (nuget) 依赖项呈现不同的组件。这可能吗 ?如果是这样,我怎样才能做到这一点?谢谢。

最佳答案

您可以尝试在 PCL 中创建一个 ContentPage,然后将其渲染器设置为:

[assembly: ExportRenderer(typeof(MaterialPage), typeof(MaterialPageRenderer))]
namespace SpecialPageRenderer.iOS
{
public class MaterialPageRenderer : PageRenderer
{
protected override void OnElementChanged(VisualElementChangedEventArgs e)
{
base.OnElementChanged(e);

if (Element != null)
{
var materialView = UIStoryboard.FromName("Main", null).InstantiateViewController("ViewController").View;

NativeView.AddSubview(materialView);
}
}
}
}

在这里,我在名为 ViewController 的 iOS 项目上创建了一个新的 MaterialViewController。然后我可以在这个渲染器中构造它,将它的 View 添加到 NativeView 上。最后会显示依赖控制。

我给你做了一个 sample 引用:https://github.com/landl0526/SpecialMaterialPage

关于c# - 如何使用 Custom Renderer 渲染不同的组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49561579/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com