diff --git a/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/BasicMetadata.cs b/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/BasicMetadata.cs
index cc2867e783..de7fb9ac5b 100644
--- a/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/BasicMetadata.cs
+++ b/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/BasicMetadata.cs
@@ -300,6 +300,11 @@ namespace ICSharpCode.WpfDesign.Designer
Metadata.AddDefaultPropertyValue(typeof(Line), Line.StrokeThicknessProperty, 2d);
Metadata.AddDefaultPropertyValue(typeof(Line), Line.StretchProperty, Stretch.None);
+ Metadata.AddDefaultPropertyValue(typeof(Polyline), Polyline.PointsProperty, new PointCollection() { new Point(0, 0), new Point(20, 20) });
+ Metadata.AddDefaultPropertyValue(typeof(Polyline), Polyline.StrokeProperty, Brushes.Black);
+ Metadata.AddDefaultPropertyValue(typeof(Polyline), Polyline.StrokeThicknessProperty, 2d);
+ Metadata.AddDefaultPropertyValue(typeof(Polyline), Polyline.StretchProperty, Stretch.None);
+
Metadata.AddDefaultPropertyValue(typeof(Rectangle), Rectangle.FillProperty, Brushes.Transparent);
Metadata.AddDefaultPropertyValue(typeof(Rectangle), Rectangle.StrokeProperty, Brushes.Black);
Metadata.AddDefaultPropertyValue(typeof(Rectangle), Rectangle.StrokeThicknessProperty, 2d);
diff --git a/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Extensions/LineExtensionBase.cs b/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Extensions/LineExtensionBase.cs
index e4d29574c5..8bbe60a626 100644
--- a/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Extensions/LineExtensionBase.cs
+++ b/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Extensions/LineExtensionBase.cs
@@ -150,11 +150,11 @@ namespace ICSharpCode.WpfDesign.Designer.Extensions
protected void SetSurfaceInfo(int x, int y, string s)
{
- if (_text == null)
- {
- _text = new TextBlock();
+ if (_text == null) {
+ _text = new TextBlock(){ FontSize = 8, FontStyle = FontStyles.Italic };
_surface.Children.Add(_text);
}
+
AdornerPanel ap = _surface.Parent as AdornerPanel;
_surface.Width = ap.Width;
@@ -163,7 +163,6 @@ namespace ICSharpCode.WpfDesign.Designer.Extensions
_text.Text = s;
Canvas.SetLeft(_text, x);
Canvas.SetTop(_text, y);
-
}
protected void HideSizeAndShowHandles()
diff --git a/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Extensions/LineHandlerExtension.cs b/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Extensions/LineHandlerExtension.cs
index e978cfca5b..614016985d 100644
--- a/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Extensions/LineHandlerExtension.cs
+++ b/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Extensions/LineHandlerExtension.cs
@@ -91,7 +91,7 @@ namespace ICSharpCode.WpfDesign.Designer.Extensions
}
}
- SetSurfaceInfo(0, 0, Math.Round((180 / Math.PI) * Math.Atan2(y, x), 0).ToString());
+ SetSurfaceInfo(0, 3, Math.Round((180 / Math.PI) * Math.Atan2(y, x), 0).ToString());
return new Bounds { X = Math.Round(x, 1), Y = Math.Round(y, 1), Left = Math.Round(left, 1), Top = Math.Round(top, 1) };
}
@@ -130,16 +130,15 @@ namespace ICSharpCode.WpfDesign.Designer.Extensions
double dx = 0;
double dy = 0;
- if (zoom != null)
- {
+ if (zoom != null) {
dx = drag.Delta.X * (1 / zoom.CurrentZoom);
dy = drag.Delta.Y * (1 / zoom.CurrentZoom);
}
+
double top, left, x, y, xtop, xleft;
-
- if (alignment == PlacementAlignment.TopLeft)
- {
+ if (alignment == PlacementAlignment.TopLeft) {
+
//normal values
x = CurrentX2 - dx;
y = CurrentY2 - dy;
@@ -150,14 +149,13 @@ namespace ICSharpCode.WpfDesign.Designer.Extensions
xtop = CurrentTop + CurrentY2;
xleft = CurrentLeft + CurrentX2;
- }
- else
- {
+ } else {
x = CurrentX2 + dx;
y = CurrentY2 + dy;
top = xtop = CurrentTop;
left = xleft = CurrentLeft;
}
+
Bounds position = CalculateDrawing(x, y, left, top, xleft, xtop);
ExtendedItem.Properties.GetProperty(Line.X1Property).SetValue(0);
@@ -165,8 +163,7 @@ namespace ICSharpCode.WpfDesign.Designer.Extensions
ExtendedItem.Properties.GetProperty(Line.X2Property).SetValue(position.X);
ExtendedItem.Properties.GetProperty(Line.Y2Property).SetValue(position.Y);
- if (operation != null)
- {
+ if (operation != null) {
var result = info.OriginalBounds;
result.X = position.Left;
result.Y = position.Top;
@@ -177,6 +174,7 @@ namespace ICSharpCode.WpfDesign.Designer.Extensions
operation.CurrentContainerBehavior.BeforeSetPosition(operation);
operation.CurrentContainerBehavior.SetPosition(info);
}
+
(drag.Target as ResizeThumb).InvalidateArrange();
ResetWidthHeightProperties();
}
diff --git a/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Extensions/PointTrackerPlacementSupport.cs b/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Extensions/PointTrackerPlacementSupport.cs
index ab0ca1e39c..93e948bab9 100644
--- a/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Extensions/PointTrackerPlacementSupport.cs
+++ b/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Extensions/PointTrackerPlacementSupport.cs
@@ -33,6 +33,7 @@ namespace ICSharpCode.WpfDesign.Designer.Extensions
{
get; set;
}
+
public PointTrackerPlacementSupport(Shape s, PlacementAlignment align, int index)
{
shape = s;
@@ -40,51 +41,32 @@ namespace ICSharpCode.WpfDesign.Designer.Extensions
Index = index;
}
-
-
- public PointTrackerPlacementSupport(Shape s, PlacementAlignment align)
- {
- shape = s;
- alignment = align;
- Index = -1;
- }
-
///
/// Arranges the adorner element on the specified adorner panel.
///
public override void Arrange(AdornerPanel panel, UIElement adorner, Size adornedElementSize)
{
Point p = new Point(0, 0);
- double thumbsize = 7;
- double distance = 0;// thumbsize / 2;
+ double thumbsize = 7;
+ double distance = 0;
if (shape as Line != null)
{
Line s = shape as Line;
double x, y;
- //will give you the angle of the line if more than 180 degrees it becomes negative from
- Double theta = (180 / Math.PI) * Math.Atan2(s.Y2 - s.Y1, s.X2 - s.X1);
-
- //this will give you the x offset from the line x point in parts of half the size of the thumb
- double dx = Math.Cos(theta * (Math.PI / 180)) * distance;
-
- //this will give you the y offset from the line y point in parts of half the size of the thumb
- double dy = Math.Sin(theta * (Math.PI / 180)) * distance;
if (alignment == PlacementAlignment.BottomRight)
{
- //x offset is linear
- x = s.X2 - Math.Abs(theta) / (180 / thumbsize) + dx;
- //y offset is angular
- y = s.Y2 - ((.5 - Math.Sin(theta * (Math.PI / 180)) * .5) * thumbsize) + dy;
+ x = s.X2;
+ y = s.Y2;
}
else
{
- x = s.X1 - ((180 - Math.Abs(theta)) / (180 / thumbsize)) - dx;
- y = s.Y1 - ((.5 - Math.Sin(theta * (Math.PI / 180) + Math.PI) * .5) * thumbsize) - dy;
+ x = s.X1;
+ y = s.Y1;
}
p = new Point(x, y);
-
}
+
Polygon pg = shape as Polygon;
Polyline pl = shape as Polyline;
if (pg != null || pl != null)
@@ -92,10 +74,9 @@ namespace ICSharpCode.WpfDesign.Designer.Extensions
if (Index > 0)
{
p = pl != null ? pl.Points[Index] : pg.Points[Index];
-
}
}
- adorner.Arrange(new Rect(p, new Size(thumbsize, thumbsize)));
+ adorner.Arrange(new Rect(p.X - thumbsize / 2, p.Y - thumbsize / 2, thumbsize, thumbsize)); //thumbsize, thumbsize)));
}
diff --git a/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Extensions/PolyLineHandlerExtension.cs b/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Extensions/PolyLineHandlerExtension.cs
index c9a88c0423..f68ac904c8 100644
--- a/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Extensions/PolyLineHandlerExtension.cs
+++ b/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Extensions/PolyLineHandlerExtension.cs
@@ -303,8 +303,6 @@ namespace ICSharpCode.WpfDesign.Designer.Extensions
}
ChangeOperation(points);
(drag.Target as ResizeThumb).InvalidateArrange();
-
-
}
protected void drag_Completed(DragListener drag)
@@ -332,15 +330,6 @@ namespace ICSharpCode.WpfDesign.Designer.Extensions
PointCollection points = GetPointCollection();
- if (ExtendedItem.Properties[Shape.StrokeProperty].ValueOnInstance == null)
- {
- ExtendedItem.Properties[Shape.StrokeProperty].SetValue(Colors.Black);
- ExtendedItem.Properties[Shape.StrokeThicknessProperty].SetValue(2d);
- ExtendedItem.Properties[Shape.StretchProperty].SetValue(Stretch.None);
- points.AddRange(new List { new Point(0, 0), new Point(20, 20) });
- ExtendedItem.Properties.GetProperty(ExtendedItem.View as Polyline != null ? Polyline.PointsProperty : Polygon.PointsProperty).SetValue(points);
- }
-
resizeThumbs = new List();
for (int i = 1; i < points.Count; i++)
{