private static void LoadLayouts(string @FileName)
        {
            IBWindow.AllWindowClose();
            IBTabItem.ClearAllIBTabItemList();

            using (StreamReader sr = new StreamReader(FileName))
            {
                while (!sr.EndOfStream)
                {
                    string line = sr.ReadLine();

                    switch (line)
                    {
                    case "// MainWindow":
                        LoadMainWindow(sr);
                        break;

                    case "// Window":
                        LoadWindow(sr);
                        break;

                    default:
                        break;
                    }
                }
            }

            IBPanel.ResetLayout();
        }
        private void SaveLayoutAs_Click(object sender, RoutedEventArgs e)
        {
            SaveFileDialog dialog = new SaveFileDialog()
            {
                FileName = ".iblayout",
                Filter   = "Image Builder 2016 LayoutFile|*.iblayout|すべてのファイル(*.*)|*.*",
                Title    = "ワークスペースのレイアウトを名前をつけて保存",
            };

            bool?result = false;

            result = dialog.ShowDialog();

            if ((bool)result)
            {
                string layoutData = "Image Builder 2016 LayoutFile\n";
                foreach (IBWorkspace ws in IBWorkspace.AllIBWorkspace)
                {
                    if (ws.IsMainWindowContent)
                    {
                        layoutData += "// MainWindow" + "\n";
                        layoutData += "{" + "\n";
                        layoutData += "// IBWorkspace" + "\n";
                        layoutData += XamlWriter.Save(ws) + "\n";
                        layoutData += "}" + "\n";
                    }
                    else
                    {
                        IBWindow w = ws.Parent as IBWindow;
                        if (w != null)
                        {
                            layoutData += "// Window" + "\n";
                            layoutData += "{" + "\n";
                            layoutData += "// Top" + "\n";
                            layoutData += w.Top.ToString() + "\n";
                            layoutData += "// Left" + "\n";
                            layoutData += w.Left.ToString() + "\n";
                            layoutData += "// Height" + "\n";
                            layoutData += w.ActualHeight.ToString() + "\n";
                            layoutData += "// Width" + "\n";
                            layoutData += w.ActualWidth.ToString() + "\n";
                            layoutData += "// IBWorkspace" + "\n";
                            layoutData += XamlWriter.Save(ws) + "\n";
                            layoutData += "}" + "\n";
                        }
                    }
                }

                File.WriteAllText(dialog.FileName, layoutData);
            }
        }
        public static void ShowControlPanel(object panelOwner)
        {
            IBTabItem trg = panelOwner as IBTabItem;

            if (trg == null)
            {
                return;
            }

            IBWindow ibw = new IBWindow();

            ibw.InputBindings.AddRange(Application.Current.MainWindow.InputBindings);
            ibw.SetIBTabItem(trg.CloneOrCopy());
            ibw.Show();
        }
        /// <summary>
        /// .iblayoutファイルの一部からウインドウを一つ読み込み、復元します。
        /// </summary>
        /// <param name="sr"></param>
        private static void LoadWindow(StreamReader sr)
        {
            string data = sr.ReadLine();

            if (data != "{")
            {
                return;
            }

            IBWindow ibw = new IBWindow();

            do
            {
                data = sr.ReadLine();
                switch (data)
                {
                case "// Top":
                    ibw.Top = double.Parse(sr.ReadLine());
                    break;

                case "// Left":
                    ibw.Left = double.Parse(sr.ReadLine());
                    break;

                case "// Height":
                    ibw.Height = double.Parse(sr.ReadLine());
                    break;

                case "// Width":
                    ibw.Width = double.Parse(sr.ReadLine());
                    break;

                case "// IBWorkspace":
                    data = sr.ReadLine();
                    IBWorkspace temp = XamlReader.Parse(data) as IBWorkspace;
                    ibw.Content = temp;
                    break;

                default:
                    break;
                }
            }while (data != "}");

            ibw.Show();

            return;
        }
 private void window_Deactivated(object sender, EventArgs e)
 {
     IBWindow.AllWindowTopmostOff();
 }