WPF:单击后的焦点边框

WPF: Focus border after click

我正试图在用户点击后让我的 border 聚焦。 目前可以通过 tabs 聚焦 border,但通过点击对用户来说会更方便。

        <Border x:Name="BorderFileInfo" Focusable="True" BorderBrush="LightGray" BorderThickness="1">
            <Grid Margin="3,0,0,0" VerticalAlignment="Center" HorizontalAlignment="Left">
                <!-- CONTENT CTRL -->
            </Grid>
        </Border>

我在另一个 post 中看到可以使用 InputBinding 捕捉点击事件,但我不知道如何在不使用命令。

Whosebug: Why doesnt WPF border control have a mousedoubleclick event?

除了必须创建命令之外,还有其他简单的方法可以做到这一点吗?

该应用程序非常小,所以如果不需要,我不想使用命令。

一种简单的方法是处理 PreviewMouseDown 或类似的鼠标事件并设置焦点:

private void Border_PreviewMouseDown(object sender, MouseButtonEventArgs e)
{
     Keyboard.Focus(sender as Border);
}

编辑

请注意,您可以通过以下方式处理 PreviewMouseLeftButtonDown 和 PreviewMouseLeftButtonUp 来创建点击:

_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);
     }
}