Browse Source

Better Polyline/Polygon/Line Support

pull/637/head
jkuehner 11 years ago
parent
commit
71e42897cd
  1. 15
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Extensions/LineExtensionBase.cs
  2. 8
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Extensions/LineHandlerExtension.cs
  3. 3
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Extensions/PointTrackerPlacementSupport.cs
  4. 10
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Extensions/PolyLineHandlerExtension.cs

15
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Extensions/LineExtensionBase.cs

@ -90,20 +90,9 @@ namespace ICSharpCode.WpfDesign.Designer.Extensions @@ -90,20 +90,9 @@ namespace ICSharpCode.WpfDesign.Designer.Extensions
protected override void OnRemove()
{
this.ExtendedItem.PropertyChanged -= OnPropertyChanged;
this.Services.Selection.PrimarySelectionChanged -= OnPrimarySelectionChanged;
DependencyPropertyDescriptor.FromProperty(FrameworkElement.HeightProperty, typeof (Shape))
.RemoveValueChanged(ExtendedItem.View, (s, ev) => ResetWidthHeightProperties());
base.OnRemove();
}
protected void OnPrimarySelectionChanged(object sender, EventArgs e)
{
bool isPrimarySelection = this.Services.Selection.PrimarySelection == this.ExtendedItem;
if (isPrimarySelection)
DependencyPropertyDescriptor.FromProperty(FrameworkElement.HeightProperty, typeof (Shape))
.AddValueChanged(ExtendedItem.View, (s, ev) => ResetWidthHeightProperties());
}
#endregion
protected void UpdateAdornerVisibility()
@ -186,8 +175,8 @@ namespace ICSharpCode.WpfDesign.Designer.Extensions @@ -186,8 +175,8 @@ namespace ICSharpCode.WpfDesign.Designer.Extensions
protected void ResetWidthHeightProperties()
{
// ExtendedItem.Properties.GetProperty(FrameworkElement.HeightProperty).Reset();
// ExtendedItem.Properties.GetProperty(FrameworkElement.WidthProperty).Reset();
ExtendedItem.Properties.GetProperty(FrameworkElement.HeightProperty).Reset();
ExtendedItem.Properties.GetProperty(FrameworkElement.WidthProperty).Reset();
}
}
}

8
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Extensions/LineHandlerExtension.cs

@ -194,8 +194,10 @@ namespace ICSharpCode.WpfDesign.Designer.Extensions @@ -194,8 +194,10 @@ namespace ICSharpCode.WpfDesign.Designer.Extensions
}
else
{
if (drag.IsCanceled) changeGroup.Abort();
else changeGroup.Commit();
if (drag.IsCanceled)
changeGroup.Abort();
else
changeGroup.Commit();
changeGroup = null;
}
@ -222,10 +224,8 @@ namespace ICSharpCode.WpfDesign.Designer.Extensions @@ -222,10 +224,8 @@ namespace ICSharpCode.WpfDesign.Designer.Extensions
Invalidate();
this.ExtendedItem.PropertyChanged += OnPropertyChanged;
this.Services.Selection.PrimarySelectionChanged += OnPrimarySelectionChanged;
resizeBehavior = PlacementOperation.GetPlacementBehavior(extendedItemArray);
UpdateAdornerVisibility();
OnPrimarySelectionChanged(null, null);
}
#endregion

3
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Extensions/PointTrackerPlacementSupport.cs

@ -74,6 +74,9 @@ namespace ICSharpCode.WpfDesign.Designer.Extensions @@ -74,6 +74,9 @@ namespace ICSharpCode.WpfDesign.Designer.Extensions
if (Index > 0)
{
p = pl != null ? pl.Points[Index] : pg.Points[Index];
var transform = shape.RenderedGeometry.Transform;
p = transform.Transform(p);
}
}
adorner.Arrange(new Rect(p.X - thumbsize / 2, p.Y - thumbsize / 2, thumbsize, thumbsize)); //thumbsize, thumbsize)));

10
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Extensions/PolyLineHandlerExtension.cs

@ -176,9 +176,6 @@ namespace ICSharpCode.WpfDesign.Designer.Extensions @@ -176,9 +176,6 @@ namespace ICSharpCode.WpfDesign.Designer.Extensions
operation.CurrentContainerBehavior.BeforeSetPosition(operation);
operation.CurrentContainerBehavior.SetPosition(info);
}
ResetWidthHeightProperties();
}
void CommitOperation()
@ -204,19 +201,18 @@ namespace ICSharpCode.WpfDesign.Designer.Extensions @@ -204,19 +201,18 @@ namespace ICSharpCode.WpfDesign.Designer.Extensions
_selectedThumbs[i].Y = points[i].Y;
}
ExtendedItem.Properties.GetProperty(pl != null ? Polyline.PointsProperty : Polygon.PointsProperty).SetValue(points);
ResetWidthHeightProperties();
operation.Commit();
operation = null;
}
else
{
if (changeGroup != null)
changeGroup.Commit();
changeGroup = null;
}
_isResizing = false;
ResetWidthHeightProperties();
Invalidate();
}
@ -339,17 +335,13 @@ namespace ICSharpCode.WpfDesign.Designer.Extensions @@ -339,17 +335,13 @@ namespace ICSharpCode.WpfDesign.Designer.Extensions
Invalidate();
ResetWidthHeightProperties();
ResetThumbs();
_isDragging = false;
extendedItemArray[0] = ExtendedItem;
ExtendedItem.PropertyChanged += OnPropertyChanged;
Services.Selection.PrimarySelectionChanged += OnPrimarySelectionChanged;
resizeBehavior = PlacementOperation.GetPlacementBehavior(extendedItemArray);
UpdateAdornerVisibility();
OnPrimarySelectionChanged(null, null);
}
#endregion

Loading…
Cancel
Save