好了,大家誰想要知道這裏的工作答案是:
在創造我添加了一個事件處理程序
myBrowser.FrameLoadEnd += MyBrowserOnFrameLoadEnd;
這看起來像這
private void MyBrowserOnFrameLoadEnd(object sender, FrameLoadEndEventArgs frameLoadEndEventArgs)
{
ChromiumWebBrowser browser = (ChromiumWebBrowser) sender;
Dispatcher.Invoke(() =>
{
ZoomLevelTextBox.Text = ((Convert.ToDouble(browser.Tag) - 100)/25.0).ToString(CultureInfo.CurrentCulture);
browser.SetZoomLevel((Convert.ToDouble(browser.Tag) - 100)/25.0);
});
}
,以後你可以改變這種狀況有兩個按鈕
private void IncreaseZoomOnPreview_OnClick(object sender, RoutedEventArgs e)
{
if (_selectedPreview < 0 || _previewItems[_selectedPreview] == null)
return;
ChangeZoom(0.5); //You could also use 0.1 or 1.0, as you like and in the decrease button you use -0.5, etc.
}
和最終答案調度/任務等
private void ChangeZoom(double change)
{
PreviewItem previewItem = _previewItems[_selectedPreview];
ChromiumWebBrowser browser = new ChromiumWebBrowser();
foreach (object child in ((Canvas)previewItem.PreviewBorder.Child).Children)
{
browser = child as ChromiumWebBrowser;
if (browser != null)
break;
}
Task<double> task = browser.GetZoomLevelAsync();
task.ContinueWith(previous =>
{
if (previous.IsCompleted)
{
double currentLevel = previous.Result;
browser.SetZoomLevel(currentLevel + change);
}
else
{
throw new InvalidOperationException("Unexpected failure of calling CEF->GetZoomLevelAsync", previous.Exception);
}
}, TaskContinuationOptions.ExecuteSynchronously);
ZoomLevelTextBox.Text = (Convert.ToDouble(ZoomLevelTextBox.Text) + change).ToString(CultureInfo.CurrentCulture);
}
最大值爲-10分至10的值,所以你應該問的是一個點擊也或者在設置的值列表框或組合框等。
您需要指定您使用的確切版本,例如'49.0.0'或'47.0.4'。在''CEF'線程上觸發'FrameLoadEnd'事件,你必須將它分派到'UI'線程來訪問一個依賴屬性。最好調用'SetZoomLevel'。記住'CefSharp'不是一些神奇的黑盒子,源代碼就在那裏,只要確保你選擇了與你使用的版本相對應的正確分支。 – amaitland
我正在使用49.0.0.0和嗯...嗯...是啊...用一個簡單的'私人無效MyBrowserOnFrameLoadEnd(對象發件人,FrameLoadEndArrayArrow frameLoadEndEventArgs) { ChromiumWebBrowser browser =(ChromiumWebBrowser)sender; (()=> { browser.ZoomLevel =(Convert.ToDouble(browser.Tag) - 100)/ 25.0; }); }'工作正常 –
如果您需要提前設置縮放級別,那麼您可能必須擴展'ChromiumWebBrowser'並重寫'OnIsBrowserInitializedChanged' https://github.com/cefsharp/CefSharp/blob/cefsharp/49/ CefSharp.Wpf/ChromiumWebBrowser.cs#L569 – amaitland