Esempio n. 1
0
        /// <summary>
        /// Открывает окно "Объекты"
        /// </summary>
        /// <param name="sender">Отправитель</param>
        /// <param name="e">Аргументы события</param>
        public static void ShowWellKnownDockWindow(object sender, EventArgs e)
        {
            try
            {
                // Получаем ссылку на службу именованных окон "Навигатора"
                IWellKnownNavigators wkn = ServicesManager.GetService(typeof(IWellKnownNavigators)) as IWellKnownNavigators;

                // Сначала ищем открытое окно "Объекты"
                WellKnownDockWindow sampleWindow = wkn.Get(WellKnownDockWindow.WindowName) as WellKnownDockWindow;

                // Окно не найдено - создаём новое окно
                if (sampleWindow == null)
                {
                    // Новое окно
                    sampleWindow = new WellKnownDockWindow();

                    // Регистрируем окно в списке именованных окон "Навигатора"
                    wkn.Register(WellKnownDockWindow.WindowName, sampleWindow);
                }

                // Добавляем его в текущий докинг "Навигатора"
                sampleWindow.Show(ServicesManager.GetService(typeof(DockManager)) as DockManager);

                // Покажем окно на экране и сделаем его активным окном в докинге
                sampleWindow.Activate();
            }

            catch (Exception x)
            {
                MessageBox.Show(x.Message, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
        }
Esempio n. 2
0
        /// <summary>
        /// Требуется восстановление окна
        /// </summary>
        /// <param name="guid">Guid окна</param>
        /// <param name="persistString">Строка с сохранённым состоянием окна</param>
        /// <returns>Элемент управления с окном</returns>
        public static DockControl RestoreWindowCallback(Guid guid, string persistString)
        {
            // Проверочка
            if (guid != _persistStateGuid)
            {
                return(null);
            }

            try
            {
                // Создаём новый документ
                XmlDocument xmlDoc = new XmlDocument();

                // Загружаем в него строку
                xmlDoc.LoadXml(persistString);

                // Создаём новое окно
                WellKnownDockWindow sampleWindow = new WellKnownDockWindow();
                try
                {
                    // Восстанавливаем ему состояние из XML
                    sampleWindow.RestoreState(xmlDoc);

                    // Возвращаем окно
                    return(sampleWindow);
                }
                catch
                {
                    throw;
                }
            }
            catch (Exception e)
            {
                throw new InvalidOperationException("Невозможно восстановить состояние окна!", e);
            }
        }