#1,075 – Triggering on IsKeyboardFocusWithin Property
May 19, 2014 1 Comment
You can set up a trigger that fires whenever a control’s IsKeyboardFocused property becomes true, changing the value of some other property when the control gains keyboard focus.
You can also trigger on the IsKeyboardFocusWithin property. This property will get set to true for an element when any child of that element has keyboard focus.
In the example below, we set the background color of either StackPanel when any element within the StackPanel has focus. This technique may be useful when you want to keep track of what section of a window the user is working in and do something based on that knowledge.
<Window.Resources> <Style x:Key="HoneydewFocus" TargetType="StackPanel"> <Style.Triggers> <Trigger Property="IsKeyboardFocusWithin" Value="true"> <Setter Property="Background" Value="Honeydew"/> </Trigger> </Style.Triggers> </Style> </Window.Resources> <StackPanel> <StackPanel Orientation="Horizontal" Margin="10" Style="{StaticResource HoneydewFocus}"> <Button Content="Click Me" VerticalAlignment="Center"/> <TextBox Width="200" Height="25" Margin="10"/> </StackPanel> <StackPanel Orientation="Horizontal" Margin="10" Style="{StaticResource HoneydewFocus}"> <Button Content="Or Me" VerticalAlignment="Center"/> <TextBox Width="200" Height="25" Margin="10"/> </StackPanel> </StackPanel>
Pingback: Dew Drop – May 19, 2014 (#1779) | Morning Dew