如何使用F sharp(F#)按下输入键时检测

时间:2013-07-18 15:14:47

标签: wpf visual-studio xaml f#

使用F sharp(F#)和XAML时如何检测何时按下Enter键?

我看过有关如何在C#中使用的文章(如this link),但在搜索F#时没有在网上找到任何内容。

2 个答案:

答案 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将具有焦点。虽然您通常使网格成为函数的持有者,但是当网格或其中任何内容具有焦点时,事件将触发并运行代码。