From d52f29092b22151ba32b49f8bcc0edb1d209a655 Mon Sep 17 00:00:00 2001 From: Kumar Devvrat Date: Sun, 30 May 2010 20:37:54 +0000 Subject: [PATCH] Add resize ability across the full border and give solid outline around selected elements git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/branches/wpfdesigner@5871 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61 --- .../Project/Controls/ControlStyles.xaml | 4 +-- .../Extensions/ResizeThumbExtension.cs | 33 ++++++++++++++++++- .../SelectedElementRectangleExtension.cs | 30 +++++++---------- 3 files changed, 45 insertions(+), 22 deletions(-) diff --git a/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Controls/ControlStyles.xaml b/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Controls/ControlStyles.xaml index bc2de3a803..672a6b1bb9 100644 --- a/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Controls/ControlStyles.xaml +++ b/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Controls/ControlStyles.xaml @@ -30,9 +30,7 @@ - + /// Places resize thumbs at their respective positions + /// and streches out thumbs which are at the center of outline to extend resizability across the whole outline + /// + /// + /// + /// + private RelativePlacement Place(ref ResizeThumb resizeThumb,PlacementAlignment alignment) + { + RelativePlacement placement = new RelativePlacement(alignment.Horizontal,alignment.Vertical); + + if (alignment.Horizontal == HorizontalAlignment.Center) + { + placement.WidthRelativeToContentWidth = 1; + placement.HeightOffset = 6; + resizeThumb.Opacity = 0; + return placement; + } + if (alignment.Vertical == VerticalAlignment.Center) + { + placement.HeightRelativeToContentHeight = 1; + placement.WidthOffset = 6; + resizeThumb.Opacity = 0; + return placement; + } + + placement.WidthOffset = 6; + placement.HeightOffset = 6; + return placement; + } Size oldSize; diff --git a/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Extensions/SelectedElementRectangleExtension.cs b/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Extensions/SelectedElementRectangleExtension.cs index 2086561aa3..e16c87d1c3 100644 --- a/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Extensions/SelectedElementRectangleExtension.cs +++ b/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Extensions/SelectedElementRectangleExtension.cs @@ -27,24 +27,18 @@ namespace ICSharpCode.WpfDesign.Designer.Extensions public SelectedElementRectangleExtension() { Rectangle selectionRect = new Rectangle(); - selectionRect.SnapsToDevicePixels = true; - selectionRect.Stroke = Brushes.White; - selectionRect.IsHitTestVisible = false; - - Rectangle dottedRect = new Rectangle(); - dottedRect.SnapsToDevicePixels = true; - dottedRect.Stroke = Brushes.Black; - dottedRect.StrokeDashCap = PenLineCap.Square; - dottedRect.StrokeDashArray = new DoubleCollection(new double[] { 0, 2 }); - dottedRect.IsHitTestVisible = false; - - RelativePlacement placement = new RelativePlacement(HorizontalAlignment.Stretch, VerticalAlignment.Stretch); - placement.XOffset = -1; - placement.YOffset = -1; - placement.WidthOffset = 2; - placement.HeightOffset = 2; - - this.AddAdorners(placement, selectionRect, dottedRect); + selectionRect.SnapsToDevicePixels = true; + selectionRect.Stroke = new SolidColorBrush(Color.FromRgb(51, 51, 51)); + selectionRect.StrokeThickness = 1.5; + selectionRect.IsHitTestVisible = false; + + RelativePlacement placement = new RelativePlacement(HorizontalAlignment.Stretch, VerticalAlignment.Stretch); + placement.XOffset = -1; + placement.YOffset = -1; + placement.WidthOffset = 2; + placement.HeightOffset = 2; + + this.AddAdorners(placement, selectionRect); } } }