2011-04-06 63 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的一部分。我没想到第三方控件会使用这个名称空间,而不是拥有自己的名称空间。

回答

相关问题