2011-04-06 62 views
0

我有一個Silverlight 4應用程序,它有一個帶有五個MDIWindows的畫布。 Canvas.Left and Canvas.Top屬性在XAML中設置。這五個MDIWindows可以通過鼠標移動。我正在嘗試使用IsolatedStorageSettings來保存其當前位置,並從按鈕事件中調用。但是,當我打電話給MDIWhatever.GetValue(Canvas.LeftProperty)我總是得到初始值Canvas.Left在XAML中設置,我想要的是當前的位置。我已經打過電話InvalidateArrange()UpdateLayout請()MDIWindowLayoutRoot(畫布)兩種。如何捕獲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的一部分。我沒想到第三方控件會使用這個名稱空間,而不是擁有自己的名稱空間。

回答

相關問題