2013-07-18 45 views

回答

3

在控制檯應用程序中,您可以這樣做,它與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?

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> 

然後你右鍵點擊「功能名稱」,然後選擇進入瀏覽到事件處理程序。編譯器會將您帶到新生成的函數中,您將能夠編寫代碼,每次按下按鈕所關注的按鍵時都會運行該代碼。雖然通常使網格成爲函數的持有者,但當網格或其中的任何內容都關注事件時,這種方式會觸發並運行代碼。

+0

如果這不是你要找的我之前回答了類似的問題,但我的回答是用於窗口事件而不是XAML事件。他們是相同的,但窗口事件無論關注什麼都會觸發。鏈接是[此鏈接](http://stackoverflow.com/a/17736867/2480591)。這是C++/CX,但也許你會知道如何實現它。 :) –