Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Dialog not shown if tab is dragged out (Dragablz/TabablzControl) #4424

Open
BornToBeRoot opened this issue Oct 6, 2023 · 1 comment
Open
Labels

Comments

@BornToBeRoot
Copy link

BornToBeRoot commented Oct 6, 2023

Describe the bug

I'm not sure if this is a bug in mahapps or a problem with the implementation.

I use the dragablz:TabablzControl and if i drag out a tab, i can't open a dialog in this window.

Steps to reproduce

MahApps_DialogCoordinator

I tried to update the DialogCoordinator when the tab was dragged out, but it doesn't work: https://github.com/BornToBeRoot/NETworkManager/pull/2517/files

Expected behavior

Dialog should open.

Actual behavior

Nothing. No Dialog, No log, no crash...

Edit: I now get sometimes this error: System.InvalidOperationException: "Context is not inside a MetroWindow."

Environment

MahApps.Metro version: v2.4.10
Windows build number: Win10 22H2 22621.2134
Target Framework: .NET 6
@BornToBeRoot
Copy link
Author

I maybe found a workaround.

Instead of doing it like this...

return _dialogCoordinator.ShowMetroDialogAsync(this, customDialog);

I can find the parent window (that is currently active) and use it as context.

var window = Application.Current.Windows.OfType<Window>().FirstOrDefault(x => x.IsActive);

return _dialogCoordinator.ShowMetroDialogAsync(window, customDialog);

Inside the parent Window the dialog needs to be registered. Not just in the View&ViewModel

xmlns:dialogs="clr-namespace:MahApps.Metro.Controls.Dialogs;assembly=MahApps.Metro"
dialogs:DialogParticipation.Register="{Binding}"

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Development

No branches or pull requests

1 participant