I'm trying to figure out if there's an elegant solution to the problem I've been faced with.
So basically, I designed a borderless loading splash screen which is completely movable via dragging. I find that this happens if the splash screen gets hidden via Hide(), then displays a window via ShowDialog() with the owner set to the splash screen. Things get extremely buggy, but only if you're in mid-drag (with left mouse button down). You become unable to click or move anything, even Visual Studio becomes unresponsive unless you explicitly alt-tab out of the application.
Considering I know when I'm going to spawn the window, I was thinking maybe there'd be a way to cancel the DragMove operation, but I'm having no luck. What I've figured out is that DragMove is synchronous, so I'd guess it'd have to be cancelled from a different thread or in an event callback.
Edit:
public partial class Window_Movable : Window
{
    public Window_Movable()
    {
        InitializeComponent();
    }
    public Boolean CanMove { get; set; } = true;
    private void Window_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
    {
        if (CanMove == false)
            return;
        Task.Factory.StartNew(() => {
            System.Threading.Thread.Sleep(1000);
            Dispatcher.Invoke(() => {
                Hide();
                new Window_Movable() {
                    Title = "MOVABLE 2",
                    CanMove = false,
                    Owner = this
                }.ShowDialog();
            });
        });
        DragMove();
    }
    private void Button_Click(object sender, RoutedEventArgs e)
    {
        Console.WriteLine("DING");
    }
}