Browse Source

RenderTransformOrigin should also look to Propertygrid changes

pull/56/head
jkuehner 12 years ago
parent
commit
edc132ea78
  1. 22
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Extensions/RenderTransformOriginExtension.cs

22
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Extensions/RenderTransformOriginExtension.cs

@ -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();
}
}

Loading…
Cancel
Save