public void UpdateListPageEl(UIBaseEl new_el = null) { // Загружает информацию напрямую из сохранённой страницы // if (list_page_name.SelectedIndex == -1) { return; } APage editPage = pageList[list_page_name.SelectedIndex]; elementsPageStackPanel.Children.Clear(); if (new_el != null) { editPage.Elements.Add(new_el.CompileElement()); } UIControlList.Clear(); foreach (var el in editPage.Elements) { AbstrUIBase UIel = PageElCenter.TryGenUiControl(el); if (UIel != null) { AppendNewUIel(UIel); } } curPage = editPage; SoftUpdate(); }
static public void WritePageListToXML(List <APage> pageList, string fileName) { XmlDocument xdd = new XmlDocument(); var xmlDeclaration = xdd.CreateXmlDeclaration("1.0", "UTF-8", null); var root = xdd.CreateElement( (XMLDefines.XMLTag.Pages).ToString()); xdd.AppendChild(xmlDeclaration); xdd.AppendChild(root); if (pageList.Count > 0) { foreach (var page in pageList) { // Создаём нод для описания страницы var xmlPage = xdd.CreateElement( (XMLDefines.XMLTag.Page).ToString()); // Аттрибут для описания имени и ID var attrName = xdd.CreateAttribute(XMLDefines.XMLPageAttr.Name.ToString()); var attrID = xdd.CreateAttribute(XMLDefines.XMLPageAttr.ID.ToString()); attrName.Value = page.Name; attrID.Value = page.ID.ToString(); xmlPage.Attributes.Append(attrName); xmlPage.Attributes.Append(attrID); if (page.Elements.Count > 0) { foreach (var pageEl in page.Elements) { var xmlEl = PageElCenter.TryWriteToXml(pageEl, xdd); if (xmlEl != null) { xmlPage.AppendChild(xmlEl); } } } root.AppendChild(xmlPage); } } try { xdd.Save(fileName); } catch { } }
public void MenuItemAddPageEl_Click(object sender, RoutedEventArgs e) { string nm = ((MenuItem)sender).Header.ToString(); foreach (KeyValuePair <int, string> kv in PageElCenter.getDict()) { if (nm == kv.Value) { CreateNewUIel(kv.Key); SoftUpdate(); break; } } }
// // Context Menu events // // Context Menu: New Element private void MenuItemAdd_MouseEnter(object sender, RoutedEventArgs e) { List <MenuItem> lm = new List <MenuItem>(); foreach (KeyValuePair <int, string> kv in PageElCenter.getDict()) { MenuItem mi = new MenuItem(); mi.Header = kv.Value; mi.Click += MenuItemAddPageEl_Click; lm.Add(mi); } ((MenuItem)sender).ItemsSource = lm; }
public void MenuItemAddPageEl_Click(object sender, RoutedEventArgs e) { string nm = ((MenuItem)sender).Header.ToString(); foreach (KeyValuePair <int, string> kv in PageElCenter.getDict()) { if (nm == kv.Value) { AbstrUIBase UIel = PageElCenter.TryGenUiControl(kv.Key); if (UIel != null) { AppendNewUIel(UIel); SoftUpdate(); break; } } } }
static public List <APage> LoadPageListFromXML(string fileName) { XmlDocument xdd = new XmlDocument(); List <APage> pageList = new List <APage>(); try { xdd.Load(fileName); XmlNode root = xdd.DocumentElement; if (root.HasChildNodes) { foreach (XmlNode nd_page in root) { // Просмотр записанных страниц // Чтение имени и ID страницы XmlNode ndName = nd_page.Attributes.GetNamedItem(XMLDefines.XMLPageAttr.Name); XmlNode ndID = nd_page.Attributes.GetNamedItem(XMLDefines.XMLPageAttr.ID); List <AbstrPageEl> page_elements = new List <AbstrPageEl>(); foreach (XmlNode nd_el in nd_page) { if (nd_el.Name == XMLDefines.XMLTag.PageEl) { // Собираем элемент страницы по шаблону // int type_ep = int.Parse( nd_el.Attributes.GetNamedItem( XMLDefines.XMLBaseElAttr.TypeEl ).Value); PageEl pl = (PageEl)PageElCenter.TryLoadFromXml(type_ep, nd_el); if (pl != null) { page_elements.Add(pl); } } } APage page = new APage( ndName.Value, int.Parse(ndID.Value), page_elements ); pageList.Add(page); } } } catch (System.IO.FileNotFoundException ex) { MessageBox.Show("В директории не неайден существующий файл с настройками, поэтому будет создан новый."); var ls = new List <APage>(); ls.Add(new APage()); Writer.WritePageListToXML(ls, fileName); } catch (Exception ex) { MessageBox.Show(ex.Message); } return(pageList); }
private void CreateNewUIel(int ind) { AbstrUIBase UIel = PageElCenter.TryGenUiControl(ind); AddUItoList(UIel); }