我需要存儲我的應用程序窗口的大小/位置和狀態,當用戶關閉應用程序並在用戶打開應用程序時將其設置回。什麼WPF方法可以用來在控件的第一個顯示上設置一些屬性?
我很容易使用註冊表鍵(這是甚至是最好的辦法?),但我想知道我應該把代碼設置爲這些屬性。
我想在窗口第一個「出現」時設置它們。但是,我有可能在這種情況下,可以使用幾種方法,即:
- Window.Show()
- Window.Activate()
- Window.ApplyTemplate()
- Window.Arrange()
- Window.ArrangeCore()
- Window.ArrangeOverride()
- Window.BeginInit()
- Window.EndInit()
- Window.Measure()
- Window.MeasureCore()
- Window.MeasureOverride()
- Window.OnApplyTemplate()
- Window.OnInitialized()
- Window.OnRender()
- Window.UpdateLayout()
我知道,他們中的大多數只是一個壞主意(UpdateLayout()將被稱爲waaaaaaay t例如經常)。意想不到的是,我正在尋找一種方法,只能在窗口中調用一次,這樣我就不必添加一個標誌來檢查這是否是方法的第一個調用。
那麼哪一個在這種情況下是最好的?爲什麼?我把代碼保存在Window.Close()(我重寫我的MyWindow
類中的方法)的值,但我也可以把它放在Window.OnClosing()或Window中.OnClosed()。這對我的情況有什麼影響嗎?我還必須保存一個datagrid的列順序,在這種情況下,我應該在哪裏放置「保存」和「加載」代碼?
在我下面的答案中提出的體系結構中,解決你的問題是否值得我去處理?我只問問,因爲對於你當前的架構和我所提出的問題,問題的答案會有所不同 - 希望這是有道理的? =/ – Smudge202 2011-06-15 10:01:34