Необработанная Система.ComponentModel.Win32Exception ' при использовании AvalonDock 2.0

Я использую AvalonDock 2.0, и когда я когда-либо открываю контейнер док-станции, в то время как в режиме отладки сбой приложения (он отлично работает при запуске без отладки). Я получаю следующее исключение:

необработанное исключение типа System.ComponentModel.Win32Exception' произошел в WindowsBase.dll файлы

дополнительная информация: операция успешно завершена

я наткнулся на это ответ, которые предлагают снять флажки с настроек исключений. Проводная вещь заключается в том, что она работала в первый раз. но этого больше не происходит. Я пробовал на других машинах он не работает. любые предложения о том, как это исправить.
Код Авалона (исключение в строке 5)

protected override IntPtr WndProc(IntPtr hwnd, int msg, IntPtr wParam, IntPtr lParam, ref bool handled) {
            if (msg == Win32Helper.WM_WINDOWPOSCHANGING) {
                if (_internalHost_ContentRendered) {
                    // the below line throw the exception
                    Win32Helper.SetWindowPos(_internalHwndSource.Handle, Win32Helper.HWND_TOP, 0, 0, 0, 0, Win32Helper.SetWindowPosFlags.IgnoreMove | Win32Helper.SetWindowPosFlags.IgnoreResize);
                }
            }
            return base.WndProc(hwnd, msg, wParam, lParam, ref handled);
        }

3 ответов


видимо есть вопрос подано, но без ответа до этого момента.

таким образом, в качестве обходного пути я обработал любые необработанные исключения, используя приложение.DispatcherUnhandledException С App.xaml.cs.
Пожалуйста, проверьте это ответ для получения более подробной информации.
Код:

protected override void OnStartup(StartupEventArgs e) {
     base.OnStartup(e);
     this.DispatcherUnhandledException += AppGlobalDispatcherUnhandledException;
}

private void AppGlobalDispatcherUnhandledException(object sender, System.Windows.Threading.DispatcherUnhandledExceptionEventArgs e) {
     e.Handled = true;
}

для тех, кто еще приземляется на этой странице, я смог избавиться от проблемы со следующей настройкой выключен:

Инструменты > Параметры > отладка > общие > включить средства отладки пользовательского интерфейса для XAML


мой быстрый взлом заключается в том, что я отключил UpdateWindowPos() в классе LayoutAutoHideWindowControl во время конфигурации отладки.

    internal void Show(LayoutAnchorControl anchor)
    {
        if (_model != null)
            throw new InvalidOperationException();

        _anchor = anchor;
        _model = anchor.Model as LayoutAnchorable;
        _side = (anchor.Model.Parent.Parent as LayoutAnchorSide).Side;
        _manager = _model.Root.Manager;
        CreateInternalGrid();

        _model.PropertyChanged += new System.ComponentModel.PropertyChangedEventHandler(_model_PropertyChanged);

        Visibility = System.Windows.Visibility.Visible;
        InvalidateMeasure();
#if !DEBUG
        UpdateWindowPos();
#endif
        Trace.WriteLine("LayoutAutoHideWindowControl.Show()");
    }

к моему текущему опыту, это приводит только к инвалидности перетаскивания свернутых закрепляемых контейнеров.