Ver 2.0. Fixes and improvements.

This commit is contained in:
2017-08-27 13:05:14 +03:00
parent 9ec10b207b
commit b3f14b4637
52 changed files with 1092 additions and 647 deletions

View File

@@ -1,8 +1,8 @@
using System.ComponentModel;
using System;
using System.ComponentModel;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Controls.Primitives;
using System.Windows.Input;
using System.Windows.Media;
namespace Diagrams
@@ -12,32 +12,35 @@ namespace Diagrams
{
private RotateTransform rotateTransform;
private ContentControl designerItem;
private static int? zIndex = null;
public MoveThumb()
{
DragStarted += new DragStartedEventHandler(this.MoveThumb_DragStarted);
DragDelta += new DragDeltaEventHandler(this.MoveThumb_DragDelta);
public MoveThumb() {
DragStarted += MoveThumb_DragStarted;
DragDelta += MoveThumb_DragDelta;
DragCompleted += MoveThumb_DragCompleted;
}
private void MoveThumb_DragCompleted(object sender, DragCompletedEventArgs e) {
//TODO Need think about ZIndex changes
}
private void MoveThumb_DragStarted(object sender, DragStartedEventArgs e)
{
private void MoveThumb_DragStarted(object sender, DragStartedEventArgs e) {
this.designerItem = DataContext as ContentControl;
if (this.designerItem != null)
{
if (this.designerItem != null) {
this.rotateTransform = this.designerItem.RenderTransform as RotateTransform;
if (designerItem.GetBindingExpression(Panel.ZIndexProperty) == null) {
zIndex = Math.Max(zIndex ?? 0, Panel.GetZIndex(designerItem));
Panel.SetZIndex(designerItem, zIndex.Value + 1);
}
}
}
private void MoveThumb_DragDelta(object sender, DragDeltaEventArgs e)
{
if (this.designerItem != null)
{
private void MoveThumb_DragDelta(object sender, DragDeltaEventArgs e) {
if (this.designerItem != null) {
Point dragDelta = new Point(e.HorizontalChange, e.VerticalChange);
if (this.rotateTransform != null)
{
if (this.rotateTransform != null) {
dragDelta = this.rotateTransform.Transform(dragDelta);
}
if (double.IsNaN(Canvas.GetLeft(this.designerItem))) Canvas.SetLeft(this.designerItem, 0);
@@ -45,6 +48,8 @@ namespace Diagrams
Canvas.SetLeft(this.designerItem, Canvas.GetLeft(this.designerItem) + dragDelta.X);
Canvas.SetTop(this.designerItem, Canvas.GetTop(this.designerItem) + dragDelta.Y);
}
}
}