2011-08-03 4 views
0

.NET 4 - WPFでユーザーコントロールを開発しています。 私たちには、リモートセッション(Terminal-Server、Citriyなど)でアプリケーションを実行している多くの顧客がいます。UserControlスタイルで "IsRemoteSession"または "IsSoftwareRendering"をトリガーする方法は?

多くのパフォーマンスの問題は既に解決されています。現時点では、IsRemoteSessionおよび/またはIsSoftwareRenderingの状態に応じて、スタイルとコントロールテンプレートのアニメーションを無効にする方法を探しています。私はコードの行を書くことなくそれを行います。

私は、数ヶ月前にxamlのトリガを使ってそれを行う方法について説明したブログ記事を読んだことは間違いないが、もう見つけられないと確信しています。

誰でも何かヒントがありますか?

答えて

0

私がこれを行う方法は、アニメーションをトリガーの中に入れることです。コードは次のようになります。

<Window.Resources> 
    <Style TargetType="{x:Type WhateverYourTypeIs}"> 
    <Style.Triggers> 
     <!-- Here I assume your whatever holds your IsRemoteSession property is your DataContext --> 
     <!-- Otherwise, change your binding --> 
     <DataTrigger Binding="{Binding Path=IsRemoteSession}" 
        Value="False"> 
      <!-- Here you use Setters to add your animations --> 
     </DataTrigger> 
    </Style.Triggers> 
</Window.Resources> 
+0

ご回答ありがとうございます。私はこの方法について考えましたが、私はdatacontextの中のすべてのコントロールで、いくつかのdpがリモートセッションの状態を計算する必要があります。私はかなり簡単だと確信しています。 – Carsten

+0

@Carsten:依存関係プロパティは必要ありません。通常のCLRプロパティを使用してバインドでき、クラスに[INotifyPropertyChange'のような[ this](http://msdn.microsoft.com/en-us/library/ms743695.aspx)を参照してください。これにより、あなたの財産に価値のある変更があった場合、その旨が通知されます。 – Jakub

関連する問題