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

@@ -20,7 +20,7 @@ namespace Diagrams
{
if (e.Source is DependencyObject)
{
var clickedElement = ((DependencyObject)e.OriginalSource).Ancestors<ContentControl>().FirstOrDefault(el => el.Style == designerStyle && WpfExtensions.GetItemsPanel(el.GetParent(true)) == fe);
var clickedElement = ((DependencyObject)e.OriginalSource).GetAncestors<ContentControl>().FirstOrDefault(el => el.Style == designerStyle && WpfExtensions.GetItemsPanel(el.GetParent(true)) == fe);
if (clickedElement == null)
{
foreach (DependencyObject item in fePanel.Children)
@@ -49,7 +49,7 @@ namespace Diagrams
{
if (e.Source is DependencyObject)
{
var clickedElement = ((DependencyObject)e.Source).Ancestors<ContentControl>().FirstOrDefault(el => el.Style == designerStyle && el.Parent == fe);
var clickedElement = ((DependencyObject)e.Source).GetAncestors<ContentControl>().FirstOrDefault(el => el.Style == designerStyle && el.Parent == fe);
if (clickedElement == null)
{
foreach (DependencyObject item in feItemsControl.Items)

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