|
|
|
@ -3,6 +3,7 @@
@@ -3,6 +3,7 @@
|
|
|
|
|
|
|
|
|
|
using System; |
|
|
|
|
using System.Collections.Generic; |
|
|
|
|
using System.ComponentModel; |
|
|
|
|
using System.Linq; |
|
|
|
|
using System.Text; |
|
|
|
|
using ICSharpCode.WpfDesign.Adorners; |
|
|
|
@ -55,14 +56,13 @@ namespace ICSharpCode.WpfDesign.Designer.Extensions
@@ -55,14 +56,13 @@ namespace ICSharpCode.WpfDesign.Designer.Extensions
|
|
|
|
|
var pointAbsNew = pointAbs + new Vector(e.HorizontalChange, e.VerticalChange); |
|
|
|
|
var pRel = adornerPanel.AbsoluteToRelative(pointAbsNew); |
|
|
|
|
|
|
|
|
|
AdornerPanel.SetPlacement(renderTransformOriginThumb, |
|
|
|
|
new RelativePlacement(HorizontalAlignment.Left, VerticalAlignment.Top){ XRelativeToContentWidth = pRel.X, YRelativeToContentHeight = pRel.Y }); |
|
|
|
|
|
|
|
|
|
this.ExtendedItem.Properties.GetProperty(FrameworkElement.RenderTransformOriginProperty).SetValue(new Point(Math.Round(pRel.X, 4), Math.Round(pRel.Y, 4))); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
Point renderTransformOrigin = new Point(0.5, 0.5); |
|
|
|
|
|
|
|
|
|
DependencyPropertyDescriptor renderTransformOriginPropertyDescriptor; |
|
|
|
|
|
|
|
|
|
protected override void OnInitialized() |
|
|
|
|
{ |
|
|
|
|
base.OnInitialized(); |
|
|
|
@ -75,6 +75,20 @@ namespace ICSharpCode.WpfDesign.Designer.Extensions
@@ -75,6 +75,20 @@ namespace ICSharpCode.WpfDesign.Designer.Extensions
|
|
|
|
|
|
|
|
|
|
AdornerPanel.SetPlacement(renderTransformOriginThumb, |
|
|
|
|
new RelativePlacement(HorizontalAlignment.Left, VerticalAlignment.Top){XRelativeToContentWidth = renderTransformOrigin.X, YRelativeToContentHeight = renderTransformOrigin.Y}); |
|
|
|
|
|
|
|
|
|
renderTransformOriginPropertyDescriptor = DependencyPropertyDescriptor.FromProperty(FrameworkElement.RenderTransformOriginProperty, typeof(FrameworkElement)); |
|
|
|
|
renderTransformOriginPropertyDescriptor.AddValueChanged(this.ExtendedItem.Component, OnRenderTransformOriginPropertyChanged); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private void OnRenderTransformOriginPropertyChanged(object sender, EventArgs e) |
|
|
|
|
{ |
|
|
|
|
var pRel = renderTransformOrigin; |
|
|
|
|
if (this.ExtendedItem.Properties.GetProperty(FrameworkElement.RenderTransformOriginProperty).IsSet) |
|
|
|
|
pRel = (Point)this.ExtendedItem.Properties.GetProperty(FrameworkElement.RenderTransformOriginProperty).ValueOnInstance; |
|
|
|
|
|
|
|
|
|
AdornerPanel.SetPlacement(renderTransformOriginThumb, |
|
|
|
|
new RelativePlacement(HorizontalAlignment.Left, VerticalAlignment.Top){ XRelativeToContentWidth = pRel.X, YRelativeToContentHeight = pRel.Y }); |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void OnPropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e) |
|
|
|
@ -82,6 +96,8 @@ namespace ICSharpCode.WpfDesign.Designer.Extensions
@@ -82,6 +96,8 @@ namespace ICSharpCode.WpfDesign.Designer.Extensions
|
|
|
|
|
|
|
|
|
|
protected override void OnRemove() |
|
|
|
|
{ |
|
|
|
|
renderTransformOriginPropertyDescriptor.RemoveValueChanged(this.ExtendedItem.Component, OnRenderTransformOriginPropertyChanged); |
|
|
|
|
|
|
|
|
|
base.OnRemove(); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|