2011-12-13 28 views
1

私はかなり奇妙な問題があります。私は、アプリケーションの可視性の動作を制御するためにINotifyPropertyChangedを使用しています。特定の基準が満たされると、更新された情報がウィンドウに表示されます。デザインのガイドラインを満たすために、クロームを無効にして、自分のクローズ、移動、および非表示のロジックを追加しました。 1つの非常に迷惑な動作を除いてすべてが素晴らしい作品です。 RDPモードでプログラムを実行しているときに、ウィンドウを非表示にしてウィンドウを非表示にして折りたたんで隠すと、RDPセッションを最小化して復元します。私のウィンドウは最新情報を表示するために更新されなくなりました。レンダリングデリゲートを使用して、ビジュアルの無効化、レイアウトの更新などのすべてを試しました。何も動作しません。アプリケーションが実行されていて、デバッグ中に実際のデータが変化しているのがわかりますが、RDPセッションが再描画を拒否しています。見知らぬ人でも、ウィンドウをドラッグすることができ、RDPセッションはデスクトップ内で再描画されますが、ウィンドウ内の何も変更されません。それは凍っているようです。ここでRDPで実行中にWPFウィンドウがリフレッシュされない

は私の窓のためのXAMLです:

<Window x:Class="MainWindow" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:dg="http://schemas.microsoft.com/wpf/2008/toolkit" 
    xmlns:tb="http://www.hardcodet.net/taskbar" 
    Title="MainWindow" 
    Height="{Binding WinHeight}" 
    Width="{Binding WinWidth}" 
    Top="{Binding WinTop}" 
    Left="{Binding WinLeft}" 
    ShowInTaskbar="False" 
    WindowStyle="None" 
    BorderThickness="0" 
    Background="Transparent" 
    AllowsTransparency="True" 
    Visibility="{Binding DisplayWindow}"> 

答えて

2

解決策は、私がAllowTransparency = "False"に設定する必要があったことに終わりました。何らかの理由で、RDPの透過性がリフレッシュの問題を引き起こす可能性があります。私はより美しい丸い角を犠牲にしなければならなかったが、今度は窓が必要に応じてリフレッシュする。

P.S.透明度を削除した後は、4ピクセルの灰色の境界線が表示されたウィンドウが残っている可能性があります。その境界線を削除するにはResizeMode = "NoResize"と設定してください。

+0

私はあなたの問題を解決してうれしいです。私の答えで説明した他のアーティファクトを経験しましたか?最も目立つのは勾配ステッピング問題です。個人的には、RDP、Citrix、またはVM上でホストされ、それらを見栄えにしたい場合は、WPFインターフェイスでプログラムを書くことをお勧めしません。プレーンなJaneに向かう場合は問題ありませんが、カスタマイズされたUIはまだ用意されていませんが、これらのプラットフォームの1つを実行する方法を実行しました。 – CodeWarrior

+0

実際には、私があなたが言及した問題のいずれかを経験していないが、それはこの特定のアプリでは、勾配グラフィックスや3Dを使用していないためです。私たちはwpfツールキットのデータグリッドを使用していますが、すべての行を展開して折りたたむロジックがありますが、この特定の部分は遅いマシンでは数秒で再描画されますが、許容できます。私は、rdp上のデプロイメントを扱うこの他の記事を見つけました:http://blogs.msdn.com/b/jgoldb/archive/2010/02/27/optimizing-visual-studio-2010-and-wpf-applications-for- remote-desktop.aspx – evasilchenko

2

私は、私は非常にシンプルなUIで書かれているいくつかのアプリではこの前に出会いました。ボタンは勾配が、私はいつもこれが実際に問題だと思っているなど、彼らは別の色に変わる徐々にいけない色のステッピングアーティファクト、

を体験し、リストが更新されませんが、国境が欠落している、正しく描画されていませんWPFはグラフィックハードウェアを使用してレンダリングし、RDPとVMボックスはグラフィックスを使用して面白い偽善を行います。私はRemoteDesktopがレンダリングされた出力まで何をしているのかよくわかりませんが、VMボックスは通常、あなたが期待するものを常に生成するわけではないモックアップされた一般的なグラフィックコントローラを使用します。私は、この発見は、次の資料で

:サーバー上で

を、RDPはRDPプロトコルを使用して することにより、ネットワーク・パケットにレンダリング情報を構築し、それらの上に送信することによって、ディスプレイ出力 をレンダリングするために、独自のビデオドライバを使用していますクライアントとのネットワーク。それはグラフィックスドライバのような音になり

Remote Desktop Protocol - MSDN

は、出力ではなく、(私は理にかなっていると思います)、グラフィックチップセットをレンダリングするために使用されています。

+0

ありがとうございます。残念ながら、そのリンクは私に解決策を提供しませんでした。私はこの問題を経験している誰のためにも、以下の答えを投稿します。 – evasilchenko

関連する問題