前提・実現したいこと
TabControlのタブの背景色を、キーボード操作(tabキーや矢印キー)時だけ色を変えたいと思っています。
該当のソースコードは、以下の様な仕様になっています。
・タブが選択状態:水色
・タブが未選択状態:白
・タブのマウスオーバー時:緑になる
ここで問題が発生したのですが、tabキーによるフォーカスをタブに当てた時は背景を赤にしたいと思い、
Trigger Property="IsKeyboardFocused"を設定したのですが、
これを設定すると、タブをクリックした時も赤になってしまいます。
キーボード操作中だけタブを赤にして、クリック時には仕様通りに水色にすることは可能でしょうか?
以上よろしくお願いいたします。
該当のソースコード
<Grid> <TabControl Margin="10" BorderThickness="0" Background="LightGray"> <TabControl.Resources> <Style TargetType="TabItem"> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="TabItem"> <Grid Name="Panel"> <ContentPresenter x:Name="ContentSite" VerticalAlignment="Center" HorizontalAlignment="Center" ContentSource="Header" Margin="10,2" /> </Grid> <ControlTemplate.Triggers> <Trigger Property="IsSelected" Value="True"> <Setter TargetName="Panel" Property="Background" Value="LightSkyBlue" /> </Trigger> <Trigger Property="IsSelected" Value="False"> <Setter TargetName="Panel" Property="Background" Value="White" /> </Trigger> <Trigger Property="IsKeyboardFocused" Value="true"> <Setter TargetName="Panel" Property="Background" Value="Red" /> <Setter Property="FocusVisualStyle" Value="{x:Null}" /> </Trigger> <MultiTrigger> <MultiTrigger.Conditions> <Condition Property="IsSelected" Value="false" /> <Condition Property="IsMouseOver" Value="true" /> </MultiTrigger.Conditions> <Setter TargetName="Panel" Property="Background" Value="Green" /> </MultiTrigger> </ControlTemplate.Triggers> </ControlTemplate> </Setter.Value> </Setter> </Style> </TabControl.Resources> <TabItem Header="General"> <Label Content="Content goes here..." /> </TabItem> <TabItem Header="Security" /> <TabItem Header="Details" /> </TabControl> </Grid>
参照URL
なお、上記のコードは下記のページを参照させていただきました。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/05/09 08:57