WPFのコントロールは自由に入れ子にすることができるので、例えばコンボボックスの中にコンボボックスを入れるなどといった事も簡単に行えます。
コンボボックスの各要素をチェックボックスにしてみます。
#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 NestComboBox = class inherit ComboBox as base new () as this = {} then let checkA = new CheckBox() checkA.Content <- "A" this.AddChild(checkA) let checkB = new CheckBox() checkB.Content <- "B" this.AddChild(checkB) end type HelloWindow = class inherit Window as base new () as this = {} then this.Title <- "Hello" let combo = new NestComboBox() do combo.Width <- 50.0 do combo.Height <- 20.0 this.AddChild(combo) this.Width <- 100.0 this.Height <- 100.0 end #if COMPILED [<STAThread()>] do let app = new Application() in app.Run(new HelloWindow()) |> ignore #endif
クラスを定義するのが面倒になってきたので、画面をXAMLで書けるようにしたいです。