示例#1
0
        /// <summary>
        /// Adds a layout element to the layout
        /// </summary>
        public bool AddToLayout(LayoutElement le)
        {
            LayoutHelper.SetUniqueElementName(LayoutElements, le);

            Lock();

            var args = new LayoutElementEventArgs(le)
            {
                Cancel = false
            };

            DelegateHelper.FireEvent(this, NewElement, args);

            if (args.Cancel)
            {
                return(false);
            }

            _layoutElements.Insert(0, le);

            FireElementsChanged();

            le.Invalidated += OnElementInvalidated;

            AddToSelection(le);

            le.Initialized = true;

            Unlock();

            return(true);
        }
示例#2
0
        static void Layout_ElementRemoved(object sender, LayoutElementEventArgs e)
        {
            LayoutDocument layoutDoc   = e.Element as LayoutDocument;
            var            floating    = e.Element as LayoutDocumentFloatingWindow;
            var            layoutPanel = e.Element as LayoutDocumentPane;

            if (layoutDoc != null)
            {
                var frame = layoutDoc.Content as Frame;
                if (layoutDoc.ContentId == "CodeRemoval")
                {
                    if (TaskbarManager.Instance.TabbedThumbnail.IsThumbnailPreviewAdded(frame))
                    {
                        ThumbnailButtonsHelper.RemoveButtons(TaskbarManager.Instance.TabbedThumbnail.GetThumbnailPreview(frame));
                    }
                    //Tab closed from preview -> clean frame handlers
                    frame.ContentRendered -= frame_ContentRendered;
                    CloseTab(frame);
                    return;
                }
                if (frame != null)
                {
                    RemovePreview(frame);
                }
            }
            else if (floating != null)
            {
                return;
            }
            else if (layoutPanel != null)
            {
                return;
            }
        }
示例#3
0
        private void LayoutControlMouseDoubleClick(object sender, MouseEventArgs e)
        {
            if (DesignMode)
            {
                return;
            }

            var pnt = ScreenToPaper(e.Location);

            foreach (var el in LayoutElements)
            {
                if (el.ClickWithin((int)pnt.X, (int)pnt.Y))
                {
                    var args = new LayoutElementEventArgs(el)
                    {
                        Cancel = false
                    };

                    DelegateHelper.FireEvent(this, ElementDoubleClicked, args);

                    if (!args.Cancel)
                    {
                        DoInvalidate();
                    }

                    break;
                }
            }
        }
示例#4
0
        private void Layout_ElementRemoved(object sender, LayoutElementEventArgs e)
        {
            LayoutAnchorable an = e.Element as LayoutAnchorable;

            if (an != null)
            {
                _region.Remove(an.Content);
            }

            // LayoutRoot root = sender as LayoutRoot;
            //root.RemoveChild(e.Element);
        }
示例#5
0
        static void Layout_ElementAdded(object sender, LayoutElementEventArgs e)
        {
            LayoutDocument layoutDoc   = e.Element as LayoutDocument;
            var            floating    = e.Element as LayoutDocumentFloatingWindow;
            var            layoutPanel = e.Element as LayoutDocumentPane;

            if (layoutDoc != null)
            {
                Frame frame = layoutDoc.Content as Frame;
                if (frame != null)
                {
                    //Add new frame rendered event handler. Create frame preview after it is rendered
                    frame.ContentRendered -= frame_ContentRendered;
                    frame.ContentRendered += frame_ContentRendered;
                    //refreshing frame to force calling frame_ContentRendered after adding new tab from flowing
                    frame.Refresh();
                }
            }
            else if (floating != null)
            {
                layoutDoc = floating.RootDocument as LayoutDocument;
                if (layoutDoc != null)
                {
                    Frame frame = layoutDoc.Content as Frame;
                    if (frame != null)
                    {
                        //Add new frame rendered event handler. Create frame preview after it is rendered
                        frame.ContentRendered -= frame_ContentRendered;
                        frame.ContentRendered += frame_ContentRendered;
                        //refreshing frame to force calling frame_ContentRendered after adding new tab from flowing
                        frame.Refresh();
                    }
                }
            }
            else if (layoutPanel != null)
            {
                layoutDoc = layoutPanel.SelectedContent as LayoutDocument;
                if (layoutDoc != null)
                {
                    Frame frame = layoutDoc.Content as Frame;
                    if (frame != null)
                    {
                        //Add new frame rendered event handler. Create frame preview after it is rendered
                        frame.ContentRendered -= frame_ContentRendered;
                        frame.ContentRendered += frame_ContentRendered;
                        //refreshing frame to force calling frame_ContentRendered after adding new tab from flowing
                        frame.Refresh();
                    }
                }
            }
            RefreshAllPreviews();
        }
示例#6
0
 private static void ElementAdded(object sender, LayoutElementEventArgs e)
 {
     if (e.Element is LayoutAnchorable anchorable)
     {
         AdjustAnchorableHideAndCloseCommands(anchorable);
     }
     else
     {
         foreach (var anchorable2 in e.Element.Descendents().OfType <LayoutAnchorable>())
         {
             AdjustAnchorableHideAndCloseCommands(anchorable2);
         }
     }
 }
示例#7
0
 /// <summary>
 /// Initializes element added by user manually.
 /// </summary>
 private void OnNewElement(object sender, LayoutElementEventArgs e)
 {
     switch (e.Element.Type)
     {
     case ElementType.Table:
     {
         if (!OpenTableDialog(e.Element as LayoutTable))
         {
             e.Cancel = true;
         }
         break;
     }
     }
 }
示例#8
0
        /// <summary>
        /// Opens element specific editing dialog for the element
        /// </summary>
        private void OnElementDoubleClicked(object sender, LayoutElementEventArgs e)
        {
            switch (e.Element.Type)
            {
            case ElementType.Table:
            {
                if (EditTable(e.Element as LayoutTable, false))
                {
                    return;
                }
                break;
            }
            }

            e.Cancel = true;
        }
示例#9
0
 private static void ElementAdded(object sender, LayoutElementEventArgs e)
 {
     AdjustAnchorableHideAndCloseCommands(e.Element as LayoutAnchorable);
 }
示例#10
0
        private void Layout_ElementAdded(object sender, LayoutElementEventArgs e)
        {
            if (_suspendLayoutItemCreation)
                return;

            foreach (var content in Layout.Descendents().OfType<LayoutContent>())
            {
                if (content is LayoutDocument)
                    CreateDocumentLayoutItem(content as LayoutDocument);
                else //if (content is LayoutAnchorable)
                    CreateAnchorableLayoutItem(content as LayoutAnchorable);
            }

            CollectLayoutItemsDeleted();
        }
示例#11
0
        private void Layout_ElementRemoved(object sender, LayoutElementEventArgs e)
        {
            if (_suspendLayoutItemCreation)
                return;

            CollectLayoutItemsDeleted();
        }