使用F sharp(F#)和XAML時,如何檢測何時按下Enter鍵?如何使用F sharp(F#)按下Enter鍵時的檢測方法
我已經看到過有關如何在C#中完成它的文章(如this link),但在搜索F#時沒有找到任何內容。
使用F sharp(F#)和XAML時,如何檢測何時按下Enter鍵?如何使用F sharp(F#)按下Enter鍵時的檢測方法
我已經看到過有關如何在C#中完成它的文章(如this link),但在搜索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或類似事件來獲取有關按鍵的信息。 How do I run some simple C# code for a given keypress?
嗯,我從來沒有在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>
然後你右鍵點擊「功能名稱」,然後選擇進入瀏覽到事件處理程序。編譯器會將您帶到新生成的函數中,您將能夠編寫代碼,每次按下按鈕所關注的按鍵時都會運行該代碼。雖然通常使網格成爲函數的持有者,但當網格或其中的任何內容都關注事件時,這種方式會觸發並運行代碼。
如果這不是你要找的我之前回答了類似的問題,但我的回答是用於窗口事件而不是XAML事件。他們是相同的,但窗口事件無論關注什麼都會觸發。鏈接是[此鏈接](http://stackoverflow.com/a/17736867/2480591)。這是C++/CX,但也許你會知道如何實現它。 :) –