如何更改WinRT Webview的縮放級別?如何更改WinRT WebView的縮放級別?
如果我給它重點,我可以放大/縮小使用鍵盤CTRL+ +
和CTRL+ -
但僅憑這些就能從代碼實現的呢?
注意:將WebView放在ScrollViewer中,並放大縮放,並不是我要找的。
如何更改WinRT Webview的縮放級別?如何更改WinRT WebView的縮放級別?
如果我給它重點,我可以放大/縮小使用鍵盤CTRL+ +
和CTRL+ -
但僅憑這些就能從代碼實現的呢?
注意:將WebView放在ScrollViewer中,並放大縮放,並不是我要找的。
不幸的是,我不認爲有辦法做到這一點直接在託管代碼。但是,如果您擁有內容或者可以注入一些css /腳本,則有一種解決方法。
在你的HTML,添加此CSS:
<style type="text/css">
body
{
zoom:100%;
}
</style>
在HTML還包括一個腳本塊這樣的:
function setZoomLevel(newZoom) {
document.styleSheets[0]['rules'][0].style['zoom'] = newZoom;
}
在你的C#代碼,添加一個輔助方法:
private void SetZoomLevel(int level)
{
string slevel = string.Format("{0}%", level);
webBrowser.InvokeScript("setZoomLevel", slevel);
}
在您的C#代碼中,您現在可以調用縮放級別:
SetZoomLevel(200);
這是我可以找到的最好的,不幸的是,如果你不能注入樣式和腳本,它是行不通的。
注意:雖然這與調整縮放滑塊幾乎一樣縮放內容,但在桌面瀏覽器中縮放滑塊不受影響。因此,如果您撥打SetZoomLevel(200);上面的,然後將滑塊設置爲200%,您實際上會看到400%。這在WebView中不應該是問題,因爲是沒有滑塊。
希望有人想出更好的答案。
嗯,好問題。我正在研究ITransformProvider2 interface,它是可訪問性API的一部分,併爲您提供桌面和Metro應用程序的縮放功能,但由於WebView被封閉,恐怕它不會太有用。無論如何發佈此信息以防別人幫助其他人取得進展。
Magnus,出於好奇,爲什麼ScrollViewer解決方案不適合你?