Tôi đập đầu vào những gì trông giống như một vấn đề đơn giản để sửa chữa trong wpf nhưng tôi vẫn chưa khám phá lý do tại sao tôi không thể làm cho ứng dụng của tôi hoạt động theo kế hoạch.Bàn phím.Tập trung không hoạt động trên hộp văn bản trong WPF
Tôi có một hộp tìm kiếm nhỏ bật lên trong ứng dụng wpf của tôi khi người dùng nhấn ctrl + f. Tất cả những gì tôi muốn là cho dấu nháy được nhấp nháy bên trong hộp văn bản hộp tìm kiếm, sẵn sàng nhận bất kỳ thông tin gì mà người dùng nhập vào mà không cần người dùng phải nhấp vào nó. Đây là mã xaml cho hộp văn bản hiển thị, được kích hoạt, có thể kiểm tra, tabstop và có thể lấy nét.
<TextBox x:Name="SearchCriteriaTextBox" Text="{Binding SearchCriteria}" Focusable="True" IsEnabled="True" IsTabStop="True" IsHitTestVisible="True" Style="{DynamicResource SearchTextBoxStyle}" Grid.Column="1" Margin="5,10,0,5" />
Trong mã phía sau, tôi có phương pháp này được gọi khi khả năng hiển thị của hộp tìm kiếm bị ảnh hưởng. hộp tìm kiếm được tải ở đầu ứng dụng.
/// <summary>
/// Handles events triggered from focusing on this view.
/// </summary>
/// <param name="sender">The sender.</param>
/// <param name="dependencyPropertyChangedEventArgs">The key event args.</param>
private void OnIsVisibleChanged(object sender, DependencyPropertyChangedEventArgs dependencyPropertyChangedEventArgs)
{
if (!((bool) dependencyPropertyChangedEventArgs.NewValue))
{
return;
}
SearchCriteriaTextBox.Focus();
Keyboard.Focus(SearchCriteriaTextBox);
SearchCriteriaTextBox.Select(0, 0);
if (SearchCriteriaTextBox.Text.Length > 0)
{
SearchCriteriaTextBox.SelectAll();
}
}
Vấn đề là, mã được gọi, thành phần trở thành IsFocused = true nhưng không lấy tiêu điểm bàn phím. Tôi có thiếu gì đó không? Trừ khi một điều khiển khác giữ cho dữ liệu tập trung vào bàn phím mà tôi chắc chắn tôi đã không mã, tại sao đoạn mã khá đơn giản này sẽ không hoạt động đúng.
Hãy thử làm điều đó sau sự kiện Đã tải. –
Tôi đoán một điều khiển khác sẽ tập trung sau khi phương thức này được gọi. Có lẽ bạn nên tập trung vào một sự kiện khác. – Ramin
@Chi tiết Tôi có một câu hỏi: Sự kiện có được kích hoạt cháy mỗi khi khả năng hiển thị thay đổi? – Ramin