リモート接続を介した 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 クライアントの遅延が少し発生することに気付くでしょう。