我有一個Silverlight 4應用程序,它有一個帶有五個MDIWindows的畫布。 Canvas.Left and Canvas.Top屬性在XAML中設置。這五個MDIWindows可以通過鼠標移動。我正在嘗試使用IsolatedStorageSettings來保存其當前位置,並從按鈕事件中調用。但是,當我打電話給MDIWhatever.GetValue(Canvas.LeftProperty)我總是得到初始值Canvas.Left在XAML中設置,我想要的是當前的位置。我已經打過電話InvalidateArrange()和UpdateLayout請()在MDIWindow和LayoutRoot(畫布)兩種。如何捕獲MDIWindow移動後的當前位置(在畫布上)?
Private Sub btnSaveLayout_Click(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles btnSaveLayout.Click
MDIWhatever.InvalidateArrange()
MDIWhatever.UpdateLayout()
LayoutRoot.InvalidateArrange()
LayoutRoot.UpdateLayout()
_settings.Clear()
_settings.Add("MDILeft", MDIWhatever.GetValue(Canvas.LeftProperty))
_settings.Add("MDITop", MDIWhatever.GetValue(Canvas.TopProperty))
_settings.Save()
End Sub
這應該很容易,我錯過了什麼?
編輯:這是來自Codeplex的第三方控件。由於System.Windows.Controls命名空間,我認爲它是Silverlight的一部分。我沒想到第三方控件會使用這個名稱空間,而不是擁有自己的名稱空間。