2012-06-25 35 views

回答

2

不幸的是,我不認爲有辦法做到這一點直接在託管代碼。但是,如果您擁有內容或者可以注入一些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中不應該是問題,因爲沒有滑塊。

希望有人想出更好的答案。

0

嗯,好問題。我正在研究ITransformProvider2 interface,它是可訪問性API的一部分,併爲您提供桌面和Metro應用程序的縮放功能,但由於WebView被封閉,恐怕它不會太有用。無論如何發佈此信息以防別人幫助其他人取得進展。

Magnus,出於好奇,爲什麼ScrollViewer解決方案不適合你?