Beispiel #1
0
        /// <summary>
        /// Creates dock window from view.
        /// </summary>
        /// <param name="target">The target dock.</param>
        /// <param name="source">The source dock.</param>
        /// <param name="sourceIndex">The source view index.</param>
        /// <param name="context">The context object.</param>
        /// <returns>The new instance of the <see cref="IDockWindow"/> class.</returns>
        public static IDockWindow CreateWindow(this IDock target, IDock source, int sourceIndex, object context)
        {
            var view = source.Views[sourceIndex];

            source.RemoveView(sourceIndex);

            var dockStrip = new DockStrip
            {
                Id          = nameof(DockStrip),
                CurrentView = view,
                Views       = new ObservableCollection <IDock> {
                    view
                }
            };

            var dockLayout = new DockLayout
            {
                Id          = nameof(DockLayout),
                CurrentView = dockStrip,
                Views       = new ObservableCollection <IDock> {
                    dockStrip
                }
            };

            var window = new DockWindow()
            {
                Id     = nameof(DockWindow),
                Layout = dockLayout
            };

            target.AddWindow(window);
            target.Factory?.Update(window, context);

            return(window);
        }