/* * value = count; * parameter[0] = index; * parameter[1] = HEIGHT */ public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { Thickness thickness; if (value is int && parameter as object[] != null && ((object[])parameter).Length == 2 && ((object[])parameter)[0] is UserControls.ServerGroupPanel && ((object[])parameter)[1] is double) { int count = (int)value; UserControls.ServerGroupPanel sgp = ((object[])parameter)[0] as UserControls.ServerGroupPanel; System.Windows.Controls.UIElementCollection children = (sgp.Parent as UserControls.ServerGroupRootPanel)?.Children; if (children != null) { int i = children.IndexOf(sgp); double HEIGHT = (double)((object[])parameter)[1]; thickness = new Thickness(0, i * HEIGHT, 0, (count - (i + 1)) * HEIGHT); } else { thickness = new Thickness(0); } } else { thickness = new Thickness(0); } return(thickness); }
public void DeleteChild(ServerGroupPanel sgp) { this.Children.Remove(sgp); for (int i = 0; i < this.Children.Count; i++) { ServerGroupPanel _sgp = this.Children[i] as ServerGroupPanel; if (_sgp != null) { _sgp.Margin = new Thickness(0, i * ConfigMenuPanel.HEIGHT, 0, (this.Children.Count - (i + 1)) * ConfigMenuPanel.HEIGHT); } } }
void InitServerTab() { // serverinfo.json 파일 로드 FileInfo fi = new FileInfo(ServerInfo.PATH); if (fi.Exists) { string json = FileContoller.Read(ServerInfo.PATH); try { ServerInfo.jobj_root = JObject.Parse(json); panel_server = ServerInfo.ConvertFromJson(ServerInfo.jobj_root); grid_server.Children.Add(panel_server); } catch (Exception e) { Log.PrintError(e.Message, "UserControls.ServerMenu.InitServertab"); } } else { try { ServerInfo.jobj_root = new JObject(new JProperty("Server", new JObject())); ServerGroupPanel panel_server = ServerInfo.ConvertFromJson(ServerInfo.jobj_root); grid_server.Children.Add(panel_server); } catch (Exception e) { Log.PrintError(e.Message, "UserControls.ServerMenu.InitServertab"); } } if (ServerGroupButton.group.Count > 0) { ServerGroupButton.group[0].IsChecked = true; } }
private void BtnAddServerMenu_Click(object sender, RoutedEventArgs e) { Window_AddServerMenu wms = new Window_AddServerMenu(); Point pt = this.PointToScreen(new Point(0, 0)); wms.Left = pt.X; wms.Top = pt.Y; if (wms.ShowDialog() == true) { string server_menu_name = wms.textBox_name.Text; if (panel_server.ServerViewModel.AddServerGroup(server_menu_name) != 0) { return; } ServerGroupPanel sgp = new ServerGroupPanel() { Content = server_menu_name }; panel_server.AddChild(sgp); } }