MaterialDesignInXAML / MaterialDesignInXAML/MaterialDesignInXamlToolkit

Nested dialog not visible after closing and reopening parent dialog

Offen
#3,735 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

bug evaluation required
Vorherrschende Sprache
C#
Sterne
16.3k
Forks
3.5k
Ø Merge
1 T. 22 Std.
Gemergte PRs (30 T.)
8

Beschreibung

Bug explanation

When you close a parent dialog which has a nested dialog open, the nested dialog becomes invisible the next time you open the parent dialog, it prevents all input because only the nested dialog PART_ContentCoverGrid is visible:

https://github.com/user-attachments/assets/dab526c5-eae5-4ee2-98a3-2b884cadb849

This seems to work fine with TransitionAssist.DisableTransitions="True":

https://github.com/user-attachments/assets/034231da-d54e-48c3-b3d8-89cd2375fa1d

Steps:

  • Open Root dialog
  • Root dialog opens Inner dialog
  • Close Root dialog
  • Reopen Root dialog
    public RootDialog RootDialog { get; } = new();

    public MainWindow()
    {
        InitializeComponent();

        _ = Application.Current.Dispatcher.InvokeAsync(async () =>
        {
            await Delay();
            _ = DialogHost.Show(RootDialog);
            await Delay();
            RootDialog.OpenInnerDialog();
            await Delay();

            DialogHost.GetDialogSession(null)!.Close();

            await Delay();
            _ = DialogHost.Show(RootDialog);
        });

        static Task Delay() => Task.Delay(2000);
    }

I'm not sure if this is even desired behavior, I assumed that all nested dialogs would close when parent is closed.
Hope I described the issue clearly, its a little bit hard to explain.

Version

5.1.0

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne damit, die im Issue beschriebene Sequenz mit DialogHost.Show, einem verschachtelten Dialog und aktivierten Übergängen zu reproduzieren; vergleiche sie mit TransitionAssist.DisableTransitions="True". Verfolge den Zustand von DialogHost und des verschachtelten Dialogs während des Schließens und erneuten Öffnens des übergeordneten Dialogs und überprüfe anschließend, dass der erneut geöffnete übergeordnete Dialog nicht mehr nur PART_ContentCoverGrid sichtbar lässt oder Eingaben blockiert.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
csharp
Bereich
desktop
Issue-Typ
Bug
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
45/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.