デフォルトWPFのDLLを参照することにより、それはあなたがコードのみWPF使用して行うことができます何もやって非常に簡単です:のWindows UI(UWPまたは8.1)インタラクティブ
#r "PresentationCore.dll"
#r "PresentationFramework.dll"
// ...other DLLs...
#r "WindowsBase.dll"
let window = System.Windows.Window()
let panel = System.Windows.Controls.StackPanel()
let button = System.Windows.Controls.Button()
panel.Children.Add button
button.Content <- "hi"
window.Content <- panel
window.Show()
を...そして、あなたはそれを操作することができますウィンドウは開いたままです...
button.Click.Add (fun _ ->
button.Content <-
button.Content :?> string |> fun x -> (x + "!") :> obj)
...ボタンをクリックして動作を確認してください。これは、UIコンポーネントを構築するための非常に強力な方法のようです。
Windows.UI名前空間/コントロール/ UIフレームワークで同じことを行う方法はありますか?F#インタラクティブでいくつかのアセンブリを読み込んで、その場でUIコンポーネントをインスタンス化しますか?
#r @"C:\Program Files (x86)\Windows Kits\10\References\Windows.Foundation.UniversalApiContract\2.0.0.0\Windows.Foundation.UniversalApiContract.winmd"
#r @"C:\Program Files (x86)\Windows Kits\10\References\Windows.Foundation.FoundationContract\2.0.0.0\Windows.Foundation.FoundationContract.winmd"
...とそれを行うことはインテリセンスWindows.UI名前空間に私を取得します。
は、私は単純に関連するように見えたファイルを参照しようとしました。私は何かをインスタンス化しようとすると、しかし:
Windows.UI.Xaml.Application()
を私が取得:
error FS0193: Could not load file or assembly 'file:///C:\Program Files (x86)\Windows Kits\10\References\Windows.Foundation.UniversalApiContract\2.0.0.0\Windows.Foundation.UniversalApiContract.winmd' or one of its dependencies. Operation is not supported. (Exception from HRESULT: 0x80131515)
"WinRTアセンブリのコンパイラサポートはありません"とはどういう意味ですか? F#コンパイラは '' .winmd''ファイルからアセンブリを読み込めませんか? '' winmd''はそれがWinRTアセンブリであることを意味しますか? –
はい、私はコンパイラが "Windowsランタイム"コンポーネントを含む.winmdアセンブリについての知識がなく、正確には標準の.NETアセンブリではないことを意味します。実装)。 – kvb