두 개의 주요 영역이있는 창이 있습니다. 하나는 ScrollViewer 내부의 TextBox이고 다른 하나는 TabControl입니다. 나는 현재 포커스가있는 부분의 주위에 빨간색 테두리를 갖고 싶어, 그래서WPF에서 포커스가있는 창의 일부분에 테두리를 어떻게 두는가?
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);
}
}
문제가 있다는 것을 수행하려면 다음과 같은 코드를 작성하는 경우 I TextBox를 클릭하면 ScrollViewer 주변의 테두리가 업데이트되지 않습니다. TabControl에서 탭을 클릭하면 테두리를 볼 수 있도록 테두리가 업데이트되지만 다른 곳을 클릭하면 "제거"되지 않습니다. 이것을 할 수있는 더 좋은 방법이 있습니까?
위대한 작품입니다. 감사. – juharr