2016-04-25 16 views
0

私は複数のウィンドウを持つことができるアプリケーションを持っていて、各ウィンドウには、CefSharp.WinForms.ChromiumWebBrowserコントロールをホストするカスタムUserControlがあります。なぜCefSharp.WebBrowserExtensions.SetZoomLevelはすべてのインスタンスに影響しますか?

CefSharp. WebBrowserExtensions. SetZoomLevelを使用してブラウザのズームレベルを問題なく変更できます。

唯一の問題は、ズームレベルがで、すべてのブラウザインスタンス(別々のすべてのウィンドウ内)が変更されることです。

なぜそうであり、どのように防止できますか? SetZoomLevelへの呼び出しに特定のコントロールインスタンスが渡されるのは驚きですが、他のすべてのインスタンスにも影響があります。

P .: CEF 3.2454.1344.g2782fb8(Chromium 45.0.2454.101)を使用しています。

+0

これはクロームデザインによるものです([こちら](https://bugs.chromium.org/p/chromium/issues/detail?id=390775)を参照)。ズームレベルはドメイン単位でリンクされています。つまり、同じドメインのすべてのコントロールインスタンスが共通のズームレベルを共有しています。私は自分のサーバーで提供されているUIとしてCefを使用しているので、すべてのページは 'http:// localhost'にあります。この "機能"を回避する方法はありますか? – mike

答えて

0

明らかにズームレベルはサブ-ドメインにリンクされています。 "http://window1.localhost"と "http://window2.localhost"を使用した場合は、ズームレベルを個別に調整できます。

+1

面白い回避策!もう一つのオプションは、 'RequestContext'を使ってそれらを隔離することです。バージョン' 45'で利用可能かどうか覚えていないので、 '47'にアップグレードする必要があるかもしれません。基本的には、デフォルトでは 'Global RequestContext'を共有しています。' RequestContext'レベルで指定できる多くの機能がありますので、調べるのに便利です。 – amaitland

関連する問題