@@ -62,6 +62,9 @@ public Rectangle DragArea
62
62
/// <summary> Starting time when dragging a tab. </summary>
63
63
private DateTimeOffset dragStartTime ;
64
64
65
+ /// <summary> Cancel the tag drag event. </summary>
66
+ private bool cancelTagDrag ;
67
+
65
68
public TabBar ( )
66
69
{
67
70
InitializeComponent ( ) ;
@@ -139,10 +142,20 @@ private void TabHoverSelected(object sender, object e)
139
142
140
143
private void TabView_TabDragStarting ( TabView sender , TabViewTabDragStartingEventArgs args )
141
144
{
145
+ cancelTagDrag = false ;
142
146
var tabViewItemArgs = ( args . Item as TabBarItem ) . NavigationParameter ;
143
147
args . Data . Properties . Add ( TabPathIdentifier , tabViewItemArgs . Serialize ( ) ) ;
144
148
args . Data . RequestedOperation = DataPackageOperation . Move ;
145
149
150
+ PreviewKeyDown += ( s , e ) =>
151
+ {
152
+ if ( e . Key is Windows . System . VirtualKey . Escape )
153
+ {
154
+ args . Cancel = true ;
155
+ cancelTagDrag = true ;
156
+ }
157
+ } ;
158
+
146
159
InteropHelpers . GetCursorPos ( out dragStartPoint ) ;
147
160
dragStartTime = DateTimeOffset . UtcNow ;
148
161
}
@@ -202,6 +215,9 @@ private async void TabView_TabStripDrop(object sender, DragEventArgs e)
202
215
203
216
private void TabView_TabDragCompleted ( TabView sender , TabViewTabDragCompletedEventArgs args )
204
217
{
218
+ if ( cancelTagDrag )
219
+ return ;
220
+
205
221
if ( ApplicationData . Current . LocalSettings . Values . ContainsKey ( TabDropHandledIdentifier ) &&
206
222
( bool ) ApplicationData . Current . LocalSettings . Values [ TabDropHandledIdentifier ] )
207
223
{
@@ -220,6 +236,9 @@ private void TabView_TabDragCompleted(TabView sender, TabViewTabDragCompletedEve
220
236
221
237
private async void TabView_TabDroppedOutside ( TabView sender , TabViewTabDroppedOutsideEventArgs args )
222
238
{
239
+ if ( cancelTagDrag )
240
+ return ;
241
+
223
242
InteropHelpers . GetCursorPos ( out var droppedPoint ) ;
224
243
var droppedTime = DateTimeOffset . UtcNow ;
225
244
var dragTime = droppedTime - dragStartTime ;
0 commit comments