diff --git a/src/Files.App/UserControls/NavigationToolbar.xaml b/src/Files.App/UserControls/NavigationToolbar.xaml index 5d4a2db52e38..094b66906186 100644 --- a/src/Files.App/UserControls/NavigationToolbar.xaml +++ b/src/Files.App/UserControls/NavigationToolbar.xaml @@ -384,10 +384,15 @@ + Content="{x:Bind Title, Mode=OneWay}" + DataContext="{x:Bind}" + DragLeave="BreadcrumbBarItem_DragLeave" + DragOver="BreadcrumbBarItem_DragOver" + Drop="BreadcrumbBarItem_Drop" /> diff --git a/src/Files.App/UserControls/NavigationToolbar.xaml.cs b/src/Files.App/UserControls/NavigationToolbar.xaml.cs index 719b32093f3c..ff5414e184e2 100644 --- a/src/Files.App/UserControls/NavigationToolbar.xaml.cs +++ b/src/Files.App/UserControls/NavigationToolbar.xaml.cs @@ -461,5 +461,20 @@ private void NavigationButtonOverflowFlyoutButton_LosingFocus(UIElement sender, if (args.NewFocusedElement is TextBox) args.Cancel = true; } + + private void BreadcrumbBarItem_DragLeave(object sender, DragEventArgs e) + { + ViewModel.PathBoxItem_DragLeave(sender, e); + } + + private async void BreadcrumbBarItem_DragOver(object sender, DragEventArgs e) + { + await ViewModel.PathBoxItem_DragOver(sender, e); + } + + private async void BreadcrumbBarItem_Drop(object sender, DragEventArgs e) + { + await ViewModel.PathBoxItem_Drop(sender, e); + } } } diff --git a/src/Files.App/ViewModels/UserControls/NavigationToolbarViewModel.cs b/src/Files.App/ViewModels/UserControls/NavigationToolbarViewModel.cs index eb6d1590cdde..c007e5623f11 100644 --- a/src/Files.App/ViewModels/UserControls/NavigationToolbarViewModel.cs +++ b/src/Files.App/ViewModels/UserControls/NavigationToolbarViewModel.cs @@ -467,7 +467,7 @@ private void UserSettingsService_OnSettingChangedEvent(object? sender, SettingCh public void PathBoxItem_DragLeave(object sender, DragEventArgs e) { - if (((StackPanel)sender).DataContext is not PathBoxItem pathBoxItem || + if (((FrameworkElement)sender).DataContext is not PathBoxItem pathBoxItem || pathBoxItem.Path == "Home" || pathBoxItem.Path == "ReleaseNotes" || pathBoxItem.Path == "Settings") @@ -490,7 +490,7 @@ public async Task PathBoxItem_Drop(object sender, DragEventArgs e) // Reset dragged over pathbox item _dragOverPath = null; - if (((StackPanel)sender).DataContext is not PathBoxItem pathBoxItem || + if (((FrameworkElement)sender).DataContext is not PathBoxItem pathBoxItem || pathBoxItem.Path == "Home" || pathBoxItem.Path == "ReleaseNotes" || pathBoxItem.Path == "Settings") @@ -521,7 +521,7 @@ public async Task PathBoxItem_Drop(object sender, DragEventArgs e) public async Task PathBoxItem_DragOver(object sender, DragEventArgs e) { if (IsSingleItemOverride || - ((StackPanel)sender).DataContext is not PathBoxItem pathBoxItem || + ((FrameworkElement)sender).DataContext is not PathBoxItem pathBoxItem || pathBoxItem.Path == "Home" || pathBoxItem.Path == "ReleaseNotes" || pathBoxItem.Path == "Settings")