1

使用升 F (F#) 和 XAML 时,如何检测按 Enter 键的时间?

我看过有关如何在 C# 中执行此操作的文章(如此链接),但在搜索 F# 时没有在网上找到任何内容。

4

2 回答 2

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 或类似事件来获取有关按键的信息。如何为给定的按键运行一些简单的 C# 代码?

于 2013-07-18T16:22:40.453 回答
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>

然后,您将右键单击“函数名称”并选择转到 Navigate to Event Handler。编译器将带您进入新生成的函数,您将能够在其中编写代码,每次您按下一个键时按钮都会运行该代码将获得焦点。尽管您通常使网格成为函数的持有者,但是当网格或其中的任何内容具有焦点时,事件将触发并运行代码。

于 2013-07-19T02:39:15.423 回答