2011-02-04 10 views
0

カスタムWPFコントロールを作成すると、通常のデフォルトの外観と効果が維持されます。たとえば、これにはボタン上のデフォルトの青色のホバーが含まれます。カスタムWPFリピートボタンのデフォルトホバー効果を保持する方法

スクロール可能なタブを備えたカスタムTabControlを作成しました。何らかの理由で、左右のリピートボタン(左右のスクロール矢印)にはホバー効果はありません。私はいくつかのチュートリアルを見て、コントロールのために自分のホバー効果を作り出す方法を教えてくれましたが、残念ながらこれらの例では背景を別の色に置き換えています(そして、これは透明な青色で退色し、 )。このホバー効果を得るにはどうすればよいですか?標準ホバー効果(ストーリーボードかもしれませんか?)にアクセスできる方法はありますか?

編集:RepeatButtonに配置したカスタムスタイルを削除すると、デフォルトのホバー効果が得られることがわかりました。多分、疑問は次のようなものです。ホバー効果をどうやって破壊したのですか?以下は、このような問題を攻撃するための最良の方法は、Expression Blendのを起動し、あなたからのスタイルをコピーしたい制御用の[テンプレートを編集」を行うことです

     <Style x:Key="TabScrollerRepeatButtonStyle" TargetType="{x:Type RepeatButton}"> 
         <Setter Property="Template"> 
          <Setter.Value> 
           <ControlTemplate> 
            <Border x:Name="testTest" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="1" Margin="1,0" CornerRadius="2"> 
             <ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center" Content="{TemplateBinding ContentControl.Content}"/> 
            </Border> 
           </ControlTemplate> 
          </Setter.Value> 
         </Setter> 

答えて

2

effect-ホバーをborkedスタイルです。スクロールバーでこれを行うと、デフォルトのスタイルとまったく同じことが表示され、関連するビットをカスタムコントロールスタイルにコピーできます。

+0

OOプログラマとして考えてみましょう。変更したいプロパティをオーバーライドするだけの方法はありますか?あるいは、私はスタイル全体を置き換える(スタイル全体をコピーし、変更したいものだけを変更する)ことを余儀なくされますか? – guesser

+0

はい、Style.BasedOnプロパティを使用します。これのようなものがあります。