所以我有一个聊天窗口,带有文本框,麦克风按钮和其他一些用于设置和共享的按钮。所以我想在按下空格按钮时始终打开麦克风,除非文本框有焦点。无论最后点击其他按钮,空格键都应该打开麦克风。
任何帮助或指示?
答案 0 :(得分:0)
您应该订阅KeyDown
Window.Current.CoreWindow
事件。无论集中控制如何,每次用户按任意键时都会触发。只有您的应用必须专注。
Window.Current.CoreWindow.KeyDown += CoreWindow_KeyDown;
private void CoreWindow_KeyDown(CoreWindow sender, KeyEventArgs args)
{
if (args.Handled)
{
return;
}
// Your event handling
}
答案 1 :(得分:0)
这是一个工作样本。
代码背后
public sealed partial class MainPage : Page
{
public MainPage()
{
this.InitializeComponent();
Window.Current.CoreWindow.KeyDown += CoreWindow_KeyDown;
}
private void CoreWindow_KeyDown(Windows.UI.Core.CoreWindow sender, Windows.UI.Core.KeyEventArgs args)
{
if (args.VirtualKey == Windows.System.VirtualKey.Space && txtData.FocusState == FocusState.Unfocused))
{
txtData.Text = "Mike Called";
}
}
}
txtData
这是我的TextBox
我要检查FocusState
Unfocused
<强> XAML 强>
<Page
x:Class="App12.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:App12"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d">
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<TextBox Text="Hello World" Name="txtData" Width="300" Height="35" HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Grid>
</Page>