public static void ClosePalette(object sender, EventArgs e) { if (ps != null) { ps.Visible = false; ps = null; view = null; ViewModel = null; } }
public void GeologyTrueScalingProfile() { Document doc = Application.DocumentManager.MdiActiveDocument; if (doc == null) { return; } Database db = doc.Database; Editor ed = doc.Editor; //ДЛЯ КАЖДОЙ ТОЧКИ ПРОФИЛЯ ГЕОЛОГИИ ЗНАЧЕНИЕ ИМЕЕТ ТОЛЬКО ЗАГЛУБЛЕНИЕ ЭТОЙ ТОЧКИ ОТ ПОВЕРХНОСТИ ЗЕМЛИ!!!! //указать линию земли на продольном профиле (полилиния) //выбрать штриховки на продольном профиле //исходные масштабные коэффициенты (сколько метров в одной единице длины автокада): //- по горизонтали //- по вертикали //- по вертикали грунты //требуемые масштабные коэффициенты //- по горизонтали //- по вертикали try { if (ps == null) { ps = new PaletteSet("Перевод масштаба профиля геологии"); ps.Style = PaletteSetStyles.ShowPropertiesMenu //| PaletteSetStyles.ShowAutoHideButton | PaletteSetStyles.ShowCloseButton; view = new GeologyTrueScalingProfileView2(); ViewModel = new GeologyTrueScalingProfileViewModel(doc, ps); view.DataContext = ViewModel; ps.AddVisual("ConnectionPaletteControl", view); ps.DockEnabled = DockSides.Left; ps.Visible = true; ps.Size = new System.Drawing.Size(420, 350); ps.Dock = DockSides.Left; ps.StateChanged += PaletteSet_StateChanged;//снимать подсветку объектов про закрытии //панель жестко привязана к одному чертежу //если документ сменяется, то панель должна быть закрыта и удалена! Application.DocumentManager.DocumentToBeDeactivated += ClosePalette; Application.DocumentManager.DocumentToBeDestroyed += ClosePalette; } else { ps.Visible = true; } } catch (System.Exception ex) { ClosePalette(null, null); CommonException(ex, "Ошибка при переводе масштаба профиля геологии"); } }