首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >适用于Windows RT的Xamarin自定义Webview渲染器不起作用

适用于Windows RT的Xamarin自定义Webview渲染器不起作用
EN

Stack Overflow用户
提问于 2016-02-01 18:46:44
回答 1查看 1.4K关注 0票数 0

我正在用Xamarin为Windows Desktop项目编写Webview渲染器,遵循Xamarin HybridWebView中的指南

代码语言:javascript
复制
[assembly: ExportRenderer(typeof(Xamarin.Forms.WebView), typeof(ProApp.Windows.Helpers.CustomWebViewRenderer))]
namespace ProApp.Windows.Helpers
{
public class CustomWebViewRenderer : ViewRenderer<Xamarin.Forms.WebView, global::Windows.UI.Xaml.Controls.WebView>
{

    protected override void OnElementChanged(ElementChangedEventArgs<Xamarin.Forms.WebView> e)
    { //Debug Point
        base.OnElementChanged(e);

        if (this.Control == null)
        {
        }
    }
}
}

我也在Android中定义了类似的WebView渲染器。我正在用WebView运行一个Xamarin.Form内容页面。android WebView渲染器正在执行/调试,但我没有获得任何用于Windows的调试器,并且Xamarin.Forms中的代码正在运行。

我还尝试在App.xaml.cs中添加var t = new Windows.Helpers.CustomWebViewRenderer();,以避免在构建后不包含任何内容(以便对类进行一些引用),但不起作用。我是不是漏掉了什么?

EN

回答 1

Stack Overflow用户

发布于 2016-02-02 07:18:04

更简单的方法是让XF框架实现它的webview代码。改为从WebViewRenderer继承。

代码语言:javascript
复制
[assembly: ExportRenderer(typeof(WebView), typeof(CustomWebViewRenderer))]
namespace Mobile.WinRT.Renderers
{
    public class CustomWebViewRenderer: WebViewRenderer
    {


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

            if (Control != null)
            {


            }

        }

    }
}

另外,我建议在您的XF项目中创建一个简单的控件,它继承自WebView,名为CustomWebView。然后你可以为它渲染,而不是在应用程序中渲染每个可能的WebView。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35128553

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档