gpt4 book ai didi

wpf - 如何从 Popup 控件捕获键盘输入

转载 作者:行者123 更新时间:2023-12-02 04:11:30 25 4
gpt4 key购买 nike

我想从作为触摸屏键盘控件的根视觉的弹出控件接收键盘输入。我希望控件支持键盘输入和触摸屏输入。我连接了事件(PreviewKeyDown 和 KeyDown),它们永远不会被触发。

最佳答案

一个 Popup默认情况下是不可聚焦的,即使它是可聚焦的,您也必须在弹出窗口上设置其他可聚焦的内容,然后使其聚焦或为其提供焦点,以便它接收键盘事件。

换句话说,如果你想要来自 Popup 的键盘事件使用 Focusable="True"并放置一个可聚焦的控件,例如 TextBoxButtonListBox或者让用户通过点击它来获得焦点,或者手动使用Focus()从代码。如果你做了所有这些事情,那么 PreviewKeyDown应该为 Popup 开火.

这是一个带有打开 Popup 的切换按钮的小演示程序。并且每当我们得到 PreviewKeyDown 时,都会显示一个 slider 增加Popup 上的事件:

<Grid>
<StackPanel>
<Slider Name="slider1"/>
<ToggleButton x:Name="toggleButton1"
Content="Open Popup"/>
</StackPanel>
<Popup PlacementTarget="{Binding ElementName=toggleButton1}"
IsOpen="{Binding IsChecked, ElementName=toggleButton1, Mode=OneWay}"
Focusable="True">
<i:Interaction.Triggers>
<i:EventTrigger EventName="PreviewKeyDown">
<ei:ChangePropertyAction TargetObject="{Binding ElementName=slider1}"
PropertyName="Value"
Value="1"
Increment="True"/>
</i:EventTrigger>
</i:Interaction.Triggers>
<TextBox Background="White"
Focusable="True">
<TextBox.Text>Sample Popup content.</TextBox.Text>
</TextBox>
</Popup>
</Grid>

关于wpf - 如何从 Popup 控件捕获键盘输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4798846/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com