예제 #1
0
        /// <summary>
        /// 此处修复了Window Workspace视图关闭后再次打开出错的问题
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void WindowFormClosed(object sender, WorkspaceEventArgs e)
        {
            Form form = windows[(Control)e.SmartPart];

            if (form != null)
            {
                form.Controls.Remove((Control)e.SmartPart);
            }
            windows.Remove((Control)e.SmartPart);
            InnerSmartParts.Remove((Control)e.SmartPart);
        }
예제 #2
0
        private Window GetOrCreateWindow(UIElement smartPart)
        {
            Window window;

            if (!_windows.TryGetValue(smartPart, out window))
            {
                window = new Window();
                _windows[smartPart] = window;
                window.Content      = smartPart;

                window.Closing += delegate(object sender, System.ComponentModel.CancelEventArgs e)
                {
                    RaiseSmartPartClosing(e);
                };

                window.Closed += delegate(object sender, EventArgs e)
                {
                    _windows.Remove(smartPart);
                    InnerSmartParts.Remove(smartPart);
                };
            }

            return(window);
        }
예제 #3
0
 private void WindowFormClosed(object sender, WorkspaceEventArgs e)
 {
     RemoveEntry((Control)e.SmartPart);
     InnerSmartParts.Remove((Control)e.SmartPart);
 }