0

コンテキスト メニューを開くことはできますが、開いているメニュー リストを VNC から見ることができません。(vncサーバーマシンを直接チェックすることでコンテキストメニューを開くことができることを知っています)さまざまなvncサーバー/クライアントマシン(すべてWindows Vistaですが)とさまざまなwpfアプリでテストしましたが、それでもメニューリストが表示されません.

これは報告された問題ですか? Windows デスクトップに関連する wpf の問題に関する情報をいくつか見つけましたが、vnc については知りません。

追加: vnc 環境の Windows ネイティブ アプリまたは Windows フォーム アプリでは、この問題は発生しません。

4

5 に答える 5

3

解決策は次のとおりです。VNCサーバーの管理プロパティで[アルファブレンディングのキャプチャ]オプションを確認します--henon

于 2010-10-14T10:57:16.113 に答える
3

リモート接続を介した WPF アプリケーションの表示に関する既知の問題を読んだり、見つけたりしていません。ただし、リモート接続がどのように機能するかを考える場合は、問題に対するいくつかの推測と、場合によっては解決策を提示してください。

リモート デスクトップ ソフトウェアをインストールするときは、実際には 2 つのことを行います。入力コマンドを中継するリピータを設定することと、フレーム サーバーとして機能するディスプレイ アダプタを追加することです。つまり、画面の内容をモニタに出力する代わりに、情報を送信します。ネットワーク経由で。

ご存じのように、WPF は DirectX を使用してレンダリングを高速化します (GPU バウンド)。すべてのグラフィック カード アクセラレーションがリモート デスクトップ接続を介して機能しないという残念な制限があります。

あなたの特定のケースで起こっていると私が信じているのは、WPFがコンテキストメニューを描画しようとしたときにソフトウェアレンダリングパイプラインを使用することにフォールバックしていないということです-おそらくコンテキストメニューがPopup別のビジュアルツリーにあるためです。

試してみる価値のあることは、WPF アプリケーションにソフトウェア レンダリングの使用を強制することです。

void OnLoaded(object sender, EventArgs e)
{
    HwndSource hwndSource = (HwndSource)PresentationSource.FromVisual(this);
    HwndTarget hwndTarget = hwndSource.CompositionTarget;

    hwndTarget.RenderMode = RenderMode.SoftwareOnly;
}

これが事実であることが判明した場合は、2 つのオプションがあります。WPF にソフトウェア レンダリング パイプラインを強制的に使用させるか、Hewlett Packardの高性能リモート デスクトップ アクセス ソフトウェアソリューションを展開してみてください。

HTH、

参照
- WPF でのグラフィックの問題のトラブルシューティングに関する Microsoft のガイドライン。
- WPF のハードウェア アクセラレーション
- HP Remote Graphics ソフトウェア


更新:他の人がこの回答を検索して見つけた場合は、VNC クライアントの設定を変更して、アルファ ブレンディングを有効にする必要があります。@mcdrewskiが指摘したように、デフォルトではVNCはアルファブレンドウィンドウを検出/レンダリングしません。アルファ ブレンディングを有効にするとコストが発生し、VNC クライアントの遅延が少し発生することに気付くでしょう。

于 2010-06-11T00:35:36.977 に答える
1

Alpha ブレンド ウィンドウまたはメニューを VNC に表示させることができた唯一の方法は、サーバーの VNCconfig アプリのデスクトップの下にある [VNC ビューアーが接続されている間は画面を非表示にする] オプションをオフにすることです。

于 2014-12-13T04:56:51.660 に答える
0

WPF アプリケーションまたは他のアプリで発生しているだけですか? デスクトップの色品質を 16 ビットに変更してみてください。

于 2010-06-07T14:07:16.280 に答える