使用升 F (F#) 和 XAML 时,如何检测按 Enter 键的时间?
我看过有关如何在 C# 中执行此操作的文章(如此链接),但在搜索 F# 时没有在网上找到任何内容。
使用升 F (F#) 和 XAML 时,如何检测按 Enter 键的时间?
我看过有关如何在 C# 中执行此操作的文章(如此链接),但在搜索 F# 时没有在网上找到任何内容。
您可以在控制台应用程序中执行此操作,这与 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# 代码?
好吧,我以前从未在 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。编译器将带您进入新生成的函数,您将能够在其中编写代码,每次您按下一个键时按钮都会运行该代码将获得焦点。尽管您通常使网格成为函数的持有者,但是当网格或其中的任何内容具有焦点时,事件将触发并运行代码。