WPFにも挑戦してみました。Windowにコントロールを追加するメソッド(AddChild)が外部からアクセスできないので芋づる式にクラス定義と継承までやってしまいました。理解はしていません。
MSDNブログの
Learning WPF through F#, and vice versa, by John Liao - Don Syme's WebLog on F# and Related Topics - Site Home - MSDN Blogs
辺りを参考にしました。
#light #I @"C:\Program Files\Reference Assemblies\Microsoft\Framework\v3.0" #r @"WindowsBase.dll" #r @"PresentationCore.dll" #r @"PresentationFramework.dll" open System open System.Windows open System.Windows.Controls open System.Windows.Media type HelloWindow = class inherit Window as base new () as this = {} then this.Title <- "Hello" let btn = new Button() btn.Content <- "Click" btn.FontSize <- 45.0 btn.Background <- Brushes.LightBlue btn.Click.Add(fun arg -> this.Close()) // 押したら閉じる this.AddChild btn end #if COMPILED [<STAThread()>] do let app = new Application() in app.Run(new HelloWindow()) |> ignore #endif
コーディング中にインデントにタブを使うなとかインデントしすぎだとか警告が出てきましたが、その辺も言語レベルで定められているのでしょうか。Pythonみたいな感じなのかな。