カスタム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>
OOプログラマとして考えてみましょう。変更したいプロパティをオーバーライドするだけの方法はありますか?あるいは、私はスタイル全体を置き換える(スタイル全体をコピーし、変更したいものだけを変更する)ことを余儀なくされますか? – guesser
はい、Style.BasedOnプロパティを使用します。これのようなものがあります。この後、セッターを追加して、変更したいプロパティだけを変更できます。いくつかの詳細については、これを参照してくださいhttp://stackoverflow.com/questions/3525166/getting-started-with-a-derived-custom-control/3525196#3525196 – NVM
良い音:)ありがとう。 – guesser