私の小さなWPFアプリケーション(F#のみ)では、閉じた後にウィンドウのサイズと場所を覚えておきたいと思います。 This C# solutionは、User.configにIDictinaryというプロジェクト設定を使用することを推奨します。これは私が後にした簡単なアプローチのようですが、私のF#プロジェクトではプロジェクトの設定が見つかりませんでした。彼らはF#プロジェクトのために存在しますか?F#WPFアプリケーション用のいくつかのユーザー値を保持
私はこれを試してみましたが、それは動作しません:(C#の例のように保存()呼び出しは利用できません。)
let getSetting k def =
if Application.Current.Properties.Contains k
then Application.Current.Properties.Item k
else def
let window = System.Windows.Window()
// is box() the best wax to make floats into obj ?
window.Top <- getSetting "WindowTop" (box 0.0) |> unbox
window.Left <- getSetting "WindowLeft" (box 0.0) |> unbox
window.Height <- getSetting "WindowHeight" (box 800.0) |> unbox
window.Width <- getSetting "WindowWidth" (box 800.0) |> unbox
window.Closing.Add(fun _ ->
Application.Current.Properties.Add("WindowTop",window.Top)
Application.Current.Properties.Add("WindowHeight",window.Height)
Application.Current.Properties.Add("WindowLeft",window.Left)
Application.Current.Properties.Add("WindowWidth",window.Width)
//Application.Current.Properties.Save() // not available!
)
私はtype providerを使用することができます知っているが、私はそれを維持したいと思います可能であれば、シンプルで、依存関係はありません。 F#WPFアプリケーションでいくつかのユーザー値を保持する方法が組み込まれていますか?
Properties.Settings.Defaultが参照しますWPFアプリケーションからのプロジェクトテンプレートに含まれるProperties-> Setting.settingsファイルから生成されるSettingsクラスです。 – mm8