![](/img/trans.png)
[英]How to enable zoom in and zoom out on a contentpage in xamarin forms?
[英]Xamarin Forms Zoom in Zoom out in Web view Does not work Smoothly
我是一個自定義渲染Webview,其中加載了一個Pdf。 當該Pdf嘗試放大或縮小時。 我可以清楚地看到缺乏。 Frist,我以為是android問題,然后我下載了pdf並嘗試了可以順利運行。
這是我的代碼
在共享項目中
public class CustomWebView : WebView
{
public static readonly BindableProperty UriProperty = BindableProperty.Create(nameof(Uri),typeof(string),typeof(CustomWebView),default(string));
public string Uri
{
get => (string)GetValue(UriProperty);
set => SetValue(UriProperty, value);
}
}
在無定形的自定義渲染中
public class CustomWebViewRenderer : WebViewRenderer
{
public CustomWebViewRenderer(Context context) : base(context)
{
}
protected override void OnElementChanged(ElementChangedEventArgs<WebView> e)
{
base.OnElementChanged(e);
if (e.NewElement != null)
{
Control.Settings.AllowUniversalAccessFromFileURLs = true;
Control.Settings.BuiltInZoomControls = true;
Control.Settings.DisplayZoomControls = true;
}
this.Control.SetBackgroundColor(Android.Graphics.Color.Transparent);
}
protected override void OnElementPropertyChanged(object sender, PropertyChangedEventArgs e)
{
if (e.PropertyName != "Uri") return;
var customWebView = Element as CustomWebView;
if (customWebView != null)
{
Control.LoadUrl(string.Format("file:///android_asset/pdfjs/web/viewer.html?file={0}", string.Format("file:///android_asset/Content/{0}", WebUtility.UrlEncode(customWebView.Uri))));
}
}
}
它正在獲取pdf,並且也沒有問題,但是當放大或縮小時可以清楚地看到閂鎖。如何解決此閂鎖問題。
Webview中的放大/縮小功能不流暢
您可以制作自定義渲染器,也可以將Xam.Plugin.WebView插件用於javascript注入。下面的代碼顯示了使用該插件的示例。 您可以調用動作來放大和縮小。
var zoomFactor = 0.1;
var zoomCounter = 1;
Func<Task> zoomInAction = async () =>
{
zoomFactor = zoomFactor + 0.1;
if (webView != null)
await webView.InjectJavascriptAsync($"document.body.style.zoom = {zoomCounter + 1 * zoomFactor};");
};
Func<Task> zoomOutAction = async () =>
{
zoomFactor = zoomFactor - 0.1;
if (webView != null)
await webView.InjectJavascriptAsync($"document.body.style.zoom = {zoomCounter + 1 * zoomFactor};");
};
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.