在我的小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