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;
            }
        }
Exemple #2
0
        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
                    });
                }
            }
        }
Exemple #3
0
        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;
            //}
        }