F# で ビジュアルデザイナを使ったGUI編集が出来るかも
XAMLのデザイナは動きますが、イベントとかにコードジェネレータに対して働きかける事は出来ませんでした。
コードジェネレータが動きませんので、Classディレクティブ?が含まれてるXAMLも例外がはかれてダメダメでした。
x:Classなどのコードを削除すれば動きました。
尚、XAMLファイルはリソースとしてプロジェクトに追加すれば良いようです。
■XAMLファイルを作る、名前は「クラス名.xaml」を作成する。
<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="タイトル" Height="320" Width="280"> <Grid> </Grid> </Window>
■F#コード、名前は「クラス名.xaml.fs」を作成する。
namespace SampleNamespace open System open System.Windows open System.Windows.Markup type WpfClassSample() = // inherit Window() let _uri = new Uri("WpfClassSample.xaml", UriKind.Relative) let _base = Application.LoadComponent(_uri) :?> Window member w.Base = _base
■実行コード for F#
let app = new Application() let wpf = new WpfClassSample() #if COMPILED let app = new Application() let wpf = new SampleNamespace.WpfClassSample() [<STAThread>] do app.Run(wpf) |> ignore #endif
<Application x:Class="SampleNamespace.App" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" StartupUri="KeyboardMouseViewrWPF.xaml"> <Application.Resources> </Application.Resources> </Application>
namespace KeyInputViewr open System.Windows type App() = inherit Application()
上記クラスのインスタンスを作成して、Run() を呼び出すことでも可能かも
-
- -