internal static bool AddItemsWithDefaultSize(DesignItem container, DesignItem[] createdItems)
 {
     return(AddItemsWithCustomSize(container, createdItems, createdItems.Select(x => new Rect(x.Position, ModelTools.GetDefaultSize(x))).ToList()));
 }
 void Click_WrapInViewbox(object sender, System.Windows.RoutedEventArgs e)
 {
     ModelTools.WrapItemsNewContainer(this.designItem.Services.Selection.SelectedItems, typeof(Viewbox));
 }
        void drag_Changed(DragListener drag)
        {
            double dx        = 0;
            double dy        = 0;
            var    alignment = (drag.Target as DesignerThumb).Alignment;

            var delta = drag.Delta;

            if (alignment.Horizontal == HorizontalAlignment.Left)
            {
                dx = -delta.X;
            }
            if (alignment.Horizontal == HorizontalAlignment.Right)
            {
                dx = delta.X;
            }
            if (alignment.Vertical == VerticalAlignment.Top)
            {
                dy = -delta.Y;
            }
            if (alignment.Vertical == VerticalAlignment.Bottom)
            {
                dy = delta.Y;
            }

            var designPanel = ExtendedItem.Services.DesignPanel as DesignPanel;

            if ((Keyboard.IsKeyDown(Key.LeftCtrl) || Keyboard.IsKeyDown(Key.RightCtrl)) &&
                alignment.Horizontal != HorizontalAlignment.Center && alignment.Vertical != VerticalAlignment.Center)
            {
                if (dx > dy)
                {
                    dx = dy;
                }
                else
                {
                    dy = dx;
                }
            }

            var newWidth  = Math.Max(0, oldSize.Width + dx);
            var newHeight = Math.Max(0, oldSize.Height + dy);

            if (operation.CurrentContainerBehavior is GridPlacementSupport)
            {
                var hor = (HorizontalAlignment)this.ExtendedItem
                          .Properties[FrameworkElement.HorizontalAlignmentProperty]
                          .ValueOnInstance;
                var ver = (VerticalAlignment)this.ExtendedItem.Properties[FrameworkElement.VerticalAlignmentProperty]
                          .ValueOnInstance;
                if (hor == HorizontalAlignment.Stretch)
                {
                    this.ExtendedItem.Properties[FrameworkElement.WidthProperty].Reset();
                }
                else
                {
                    this.ExtendedItem.Properties.GetProperty(FrameworkElement.WidthProperty).SetValue(newWidth);
                }

                if (ver == VerticalAlignment.Stretch)
                {
                    this.ExtendedItem.Properties[FrameworkElement.HeightProperty].Reset();
                }
                else
                {
                    this.ExtendedItem.Properties.GetProperty(FrameworkElement.HeightProperty).SetValue(newHeight);
                }
            }
            else
            {
                ModelTools.Resize(ExtendedItem, newWidth, newHeight);
            }

            if (operation != null)
            {
                var info   = operation.PlacedItems[0];
                var result = info.OriginalBounds;

                if (alignment.Horizontal == HorizontalAlignment.Left)
                {
                    result.X = Math.Min(result.Right, result.X - dx);
                }
                if (alignment.Vertical == VerticalAlignment.Top)
                {
                    result.Y = Math.Min(result.Bottom, result.Y - dy);
                }
                result.Width  = newWidth;
                result.Height = newHeight;

                info.Bounds = result.Round();
                info.ResizeThumbAlignment = alignment;
                operation.CurrentContainerBehavior.BeforeSetPosition(operation);
                operation.CurrentContainerBehavior.SetPosition(info);
            }
        }
 internal static bool AddItemWithDefaultSize(DesignItem container, DesignItem createdItem, Point position)
 {
     return(AddItemWithCustomSize(container, createdItem, position, ModelTools.GetDefaultSize(createdItem)));
 }
Beispiel #5
0
 void Click_ArrangeBottom(object sender, System.Windows.RoutedEventArgs e)
 {
     ModelTools.ArrangeItems(this.designItem.Services.Selection.SelectedItems, ArrangeDirection.Bottom);
 }
Beispiel #6
0
 void Click_ArrangeVerticalCentered(object sender, System.Windows.RoutedEventArgs e)
 {
     ModelTools.ArrangeItems(this.designItem.Services.Selection.SelectedItems, ArrangeDirection.VerticalMiddle);
 }
 public virtual void SetPosition(PlacementInformation info)
 {
     ModelTools.Resize(info.Item, info.Bounds.Width, info.Bounds.Height);
 }