У меня есть окно с двумя основными областями.Один - это TextBox внутри ScrollViewer, а другой - TabControl.Я хочу иметь красную рамку вокруг части, которая в данный момент имеет фокус, поэтому я написал следующий код, чтобы сделать это
Xaml
<ScrollViewer BorderBrush="Red"
BorderThickness="0"
GotFocus="Border_GotFocus"
LostFocus="Border_LostFocus">
<TextBox/>
</ScrollViewer>
<TabControl BorderBrush="Red"
BorderThickness="0"
GotFocus="Border_GotFocus"
LostFocus="Border_LostFocus">
</TabControl>
Код
private void Border_LostFocus(object sender, RoutedEventArgs e)
{
var control = sender as Control;
if (control != null)
{
control.BorderThickness = new Thickness(0);
}
}
private void Border_GotFocus(object sender, RoutedEventArgs e)
{
var control = sender as Control;
if (control != null)
{
control.BorderThickness = new Thickness(2);
}
}
Проблема в том, что, если я нажимаю на TextBox, он не обновляет границу вокруг ScrollViewer.Если я нажимаю на вкладку в TabControl, она обновляет границу, чтобы я мог видеть границу, но не «удаляет» ее, когда я щелкаю где-то еще.Есть ли лучший способ сделать это?