使用F sharp(F#)和XAML时如何检测何时按下Enter键?
我看过有关如何在C#中使用的文章(如this link),但在搜索F#时没有在网上找到任何内容。
答案 0 :(得分:4)
在控制台应用程序中,您可以执行此操作,这与C#代码非常相似。
open System
let keyStroke = Console.ReadKey()
if keyStroke.Key.Equals(ConsoleKey.Enter) then
printfn "Enter pressed"
else
printfn "%c pressed" keyStroke.KeyChar
在wpf中,您可以通过注册PreviewKeyDown或类似事件来获取有关按键的信息。 How do I run some simple C# code for a given keypress?
答案 1 :(得分:0)
我以前从未用F#编码,但我最近开始使用XAML,我确信你可以在XAML代码中添加KeyDown EventHabdler并导航到生成的函数。如果对象具有焦点,该功能将检测按键。这通常使用按钮呈现。想象一下XAML中的这段代码
<Page
//....generated stuff>
<Grid>
<Button x:Name="Button1"/>
</Grid>
</Page>
然后您可以将其更改为:
<Page
//....generated stuff>
<Grid>
<Button x:Name="Button1" KeyDown="Function Name"/>
</Grid>
</Page>
然后,您将右键单击“功能名称”,然后选择转到“导航到事件处理程序”。编译器将带您进入新生成的函数,并且您将能够在其中编写代码,每当您按下一个键时,Button将具有焦点。虽然您通常使网格成为函数的持有者,但是当网格或其中任何内容具有焦点时,事件将触发并运行代码。