2011-07-14 9 views
2

私はuserControlから派生したカスタムクラスを持っており、 "サービスウィンドウ"にどのような機能があるべきかを記述しています。また、この "サービスウィンドウ"のインスタンスがどのように見えるかを記述する必要があります。 私はserviceStyleというスタイルを持っています。今度は、サービスウィンドウの新しいインスタンスを作成するたびに、インスタンスのXAMLで手動でスタイルを設定する必要があります。基本的にすべての子ウィンドウのserviceStyleにスタイルを強制することで、これを行う必要はありません。次に、serviceStyleのtextBlockでフェードアニメーションを実行できるようにしたいと考えています。今はこれが「サービスウィンドウ」の子供のスタイルなので到達不可能なようです...親からのスタイルを変更する

その間、私はスタイルをすべてのサービスウィンドウのデフォルトスタイルとして設定する方法を見つけました。これは実行できますDefaultStyleKeyProperty.OverrideMetadata(typeof(NetcarityService)、new FrameworkPropertyMetadata(typeof(NetcarityService)));コンストラクタに次の行を追加します。

今私は.... ServiceWindowStyleのXAMLの要素のTextBlockにソースから事前に

感謝を取得できるようにする必要があります。

答えて

0

デフォルトのスタイルを作成するためにこれを行う必要はありません。キーなしでスタイルを定義するだけです。たとえば、このスタイルは、アプリ内のすべてのボタンに適用されます(スタイルがapp.xamlに定義されている場合)子どもたちは、私はあなただけの子であるときを検出するためにいくつかのコードを記述する必要があると思うだろうに関しては

 <Style TargetType="{x:Type Button}"> 
      <Style.Setters> 
       <Setter Property="Margin" Value="6"></Setter> 
       <Setter Property="Padding" Value="6,3,6,3"></Setter> 
      </Style.Setters> 
     </Style> 

子のデフォルトのスタイルを追加して設定します。私はあなたがOnVisualChildrenChangedをオーバーライドできると思います。

PS。 DefaultStyleKeyPropertyの設定は静的コンストラクタで行う必要があります

関連する問題