[英]WPF: Focus border after click
我試圖在用戶單擊border
后使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>
我在另一篇文章中看到,可以使用InputBinding
捕獲click事件,但是我不知道如何在不使用命令的情況下將border
聚焦。
Stackoverflow:為什么WPF邊框控件沒有mousedoubleclick事件?
除了必須創建命令之外,還有其他簡便的方法嗎?
該應用程序非常小,因此我不需要使用命令。
一種簡單的方法是處理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);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.