Skip to content

Commit e66430a

Browse files
committed
feature new placement type when drag drop from outside
1 parent 4af7e29 commit e66430a

2 files changed

Lines changed: 22 additions & 11 deletions

File tree

WpfDesign/Project/Extensions/MouseOverExtensionServer.cs

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -37,9 +37,10 @@ protected override void OnInitialized()
3737
{
3838
base.OnInitialized();
3939
var panel = this.Services.GetService<IDesignPanel>() as FrameworkElement;
40-
if (panel != null) {
41-
((FrameworkElement) this.Services.DesignPanel).PreviewMouseMove += MouseOverExtensionServer_PreviewMouseMove;
42-
((FrameworkElement) this.Services.DesignPanel).MouseLeave += MouseOverExtensionServer_MouseLeave;
40+
if (panel != null)
41+
{
42+
((FrameworkElement)this.Services.DesignPanel).PreviewMouseMove += MouseOverExtensionServer_PreviewMouseMove;
43+
((FrameworkElement)this.Services.DesignPanel).MouseLeave += MouseOverExtensionServer_MouseLeave;
4344
Services.Selection.SelectionChanged += OnSelectionChanged;
4445
}
4546
}
@@ -51,7 +52,8 @@ void OnSelectionChanged(object sender, DesignItemCollectionEventArgs e)
5152

5253
private void MouseOverExtensionServer_MouseLeave(object sender, MouseEventArgs e)
5354
{
54-
if (_lastItem != null) {
55+
if (_lastItem != null)
56+
{
5557
var oldLastItem = _lastItem;
5658
_lastItem = null;
5759
ReapplyExtensions(new[] { oldLastItem });
@@ -74,14 +76,17 @@ private void MouseOverExtensionServer_PreviewMouseMove(object sender, MouseEvent
7476
if (item == null)
7577
return HitTestFilterBehavior.ContinueSkipSelf;
7678

77-
if (element == null || item.Parent == element) {
79+
if (element == null || item.Parent == element)
80+
{
7881
element = item;
7982
return HitTestFilterBehavior.Continue;
8083
}
8184

8285
var par = item.Parent;
83-
while (par != null) {
84-
if (par.Parent == element) {
86+
while (par != null)
87+
{
88+
if (par.Parent == element)
89+
{
8590
element = item;
8691
return HitTestFilterBehavior.Continue;
8792
}
@@ -99,8 +104,9 @@ private void MouseOverExtensionServer_PreviewMouseMove(object sender, MouseEvent
99104
var oldLastItem = _lastItem;
100105
_lastItem = element;
101106
if (oldLastItem != null && oldLastItem != element)
102-
ReapplyExtensions(new[] { oldLastItem, element});
103-
else {
107+
ReapplyExtensions(new[] { oldLastItem, element });
108+
else
109+
{
104110
ReapplyExtensions(new[] { element });
105111
}
106112
}
@@ -113,5 +119,4 @@ public override bool ShouldApplyExtensions(DesignItem extendedItem)
113119
return extendedItem == _lastItem && !Services.Selection.IsComponentSelected(extendedItem);
114120
}
115121
}
116-
117122
}

WpfDesign/Project/PlacementType.cs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,13 @@ public sealed class PlacementType
6464
/// Inserting from Cliboard
6565
/// </summary>
6666
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes")]
67-
public static readonly PlacementType PasteItem = Register("PasteItem");
67+
public static readonly PlacementType PasteItem = Register("PasteItem");
68+
69+
/// <summary>
70+
/// Inserting via DragDropFromOutside
71+
/// </summary>
72+
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes")]
73+
public static readonly PlacementType DragDropFromOutside = Register("DragDropFromOutside");
6874

6975
readonly string name;
7076

0 commit comments

Comments
 (0)