我试图在用户点击后调整border
。
目前,可以通过border
关注tabs
,但通过点击对用户来说会更方便。
<Border x:Name="BorderFileInfo" Focusable="True" BorderBrush="LightGray" BorderThickness="1">
<Grid Margin="3,0,0,0" VerticalAlignment="Center" HorizontalAlignment="Left">
<!-- CONTENT CTRL -->
</Grid>
</Border>
我在另一篇文章中看到,有可能用InputBinding
捕获点击事件,但我不知道如何在不使用命令的情况下关注border
。
Stackoverflow: Why doesnt WPF border control have a mousedoubleclick event?
除了必须创建命令之外,还有一种简单的方法吗?
该应用程序非常小,所以如果我不需要,我不想使用命令。
答案 0 :(得分:2)
一种简单的方法是处理PreviewMouseDown
或类似的鼠标事件并设置焦点:
private void Border_PreviewMouseDown(object sender, MouseButtonEventArgs e)
{
Keyboard.Focus(sender as Border);
}
修改强>
请注意,您可以通过以下方式处理PreviewMouseLeftButtonDown和PreviewMouseLeftButtonUp来创建Click:
_isdown =false;
private void Border_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
_isdown =true;
}
private void Border_PreviewMouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
if ( _isdown)
{
_isdown = false;
Keyboard.Focus(sender as Border);
}
}