public static void ShowOperationControl(DockControl.IDockAbleControl ctrl) { if (ctrl.IsShowing) { // 已经显示的放到前台 var parentTabItem = EditorCommon.Program.GetParent((FrameworkElement)(ctrl), typeof(TabItem)) as TabItem; var parentTabControl = EditorCommon.Program.GetParent((FrameworkElement)(ctrl), typeof(TabControl)) as TabControl; if (parentTabControl != null && parentTabItem != null) { parentTabControl.SelectedItem = parentTabItem; } // 将包含该控件的窗体显示到最前 var parentWin = EditorCommon.Program.GetParent((FrameworkElement)(ctrl), typeof(Window)) as Window; ResourceLibrary.Win32.BringWindowToTop(new System.Windows.Interop.WindowInteropHelper(parentWin).Handle); } else { // 判断是不是已经加载了 var dockWin = new DockControl.DockAbleWindow(); dockWin.SetContent(ctrl); dockWin.Show(); ctrl.IsShowing = true; } }
public void BindOperationControl(int idx, DockControl.IDockAbleControl ctrl) { if (idx >= Count) { return; } if (MenuItems == null) { return; } if (OperationControls == null || OperationControls.Length != Count) { OperationControls = new DockControl.IDockAbleControl[Count]; } OperationControls[idx] = ctrl; foreach (var menus in MenuItems) { if (idx < menus.Length) { menus[idx].SetBinding(MenuItem.IsCheckedProperty, new Binding("IsShowing") { Source = OperationControls[idx], Mode = BindingMode.OneWay }); } } }
public DockControl.IDockAbleControl LoadElement(EngineNS.IO.XmlNode node) { DockControl.IDockAbleControl ctr = null; if (node == null) { return(ctr); } var childNode = node.FindNode("Element"); if (childNode == null) { return(ctr); } var att = childNode.FindAttrib("Id"); if (att == null) { return(ctr); } foreach (var i in EditorCommon.PluginAssist.PluginManager.Instance.PluginsDicWithIdKey.Values) { if (string.Equals(i.Id.ToString(), att.Value, System.StringComparison.OrdinalIgnoreCase)) { ctr = Process.GetPluginControl(i.PluginObject); break; } } return(ctr); //att = node.FindAttrib("GridRow"); //if (att != null) // Grid.SetRow(element, System.Convert.ToInt32(att.Value)); //att = node.FindAttrib("GridColumn"); //if (att != null) // Grid.SetColumn(element, System.Convert.ToInt32(att.Value)); //att = node.FindAttrib("HorizontalAlignment"); //if (att != null) //{ // HorizontalAlignment alg; // System.Enum.TryParse<HorizontalAlignment>(att.Value, out alg); // element.HorizontalAlignment = alg; //} //att = node.FindAttrib("VerticalAlignment"); //if (att != null) //{ // VerticalAlignment alg; // System.Enum.TryParse<VerticalAlignment>(att.Value, out alg); // element.VerticalAlignment = alg; //} }