Vì vậy, tôi đã làm việc trên một dự án thú cưng cho Windows Store, và đã đạt một chút trở ngại: sự kiện bàn phím từ chối kích hoạt. Tôi đã cố gắng tập trung vào trang chính, cố gắng tập trung vào Grid, nhưng không có gì có vẻ hữu ích. Bất cứ ai gặp phải vấn đề như thế này? Google-fu của tôi đã thất bại.Sự kiện bàn phím không kích hoạt trong ứng dụng RT
đang liên quan:
XAML:
<Page
x:Class="PlatformTD.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:PlatformTD"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d">
<Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}"
Name="LayoutRoot">
<Canvas HorizontalAlignment="Stretch" VerticalAlignment="Stretch"
Name="MainCanvas" x:FieldModifier="public"
SizeChanged="MainCanvas_SizeChanged"
Loaded="MainCanvas_Loaded" />
</Grid>
</Page>
C#:
public MainPage()
{
this.InitializeComponent();
MainCanvas.KeyDown += MainPage_KeyDown;
MainCanvas.KeyUp += MainPage_KeyUp;
KeyDown += MainPage_KeyDown;
KeyUp += MainPage_KeyUp;
LayoutRoot.KeyDown += MainPage_KeyDown;
LayoutRoot.KeyUp += MainPage_KeyUp;
}
private void MainPage_KeyUp(object sender, KeyRoutedEventArgs e)
{ // breakpoint here to catch when event fires
// does stuff
}
private void MainPage_KeyDown(object sender, KeyRoutedEventArgs e)
{ // breakpoint here to catch when event fires
// does stuff
}
Các sự kiện bàn phím này chỉ được nâng lên nếu các điều khiển của bạn tập trung. Nếu bạn muốn xử lý tất cả các sự kiện quan trọng - hãy sử dụng đề xuất của Igor để lấy chúng từ cửa sổ lõi. Nếu không, bạn cần phải cho phép tập trung vào các điều khiển và tập trung vào chúng. –