Dialogfeld-SteuerelementeDialog controls

Dialogfeld-Steuerelemente sind modale Benutzeroberflächenüberlagerungen, die kontextbezogene App-Informationen enthalten.Dialog controls are modal UI overlays that provide contextual app information. Sie blockieren Interaktionen mit dem App-Fenster, bis sie explizit geschlossen werden.They block interactions with the app window until being explicitly dismissed. Sie verlangen häufig eine Aktion vom Benutzer.They often request some kind of action from the user.

Beispiel für ein Dialogfeld

Abrufen der Windows-UI-BibliothekGet the Windows UI Library

WinUI-Logo

Die Bibliothek „Windows UI“ enthält ab Version 2.2 eine neue Vorlage für dieses Steuerelement, die abgerundete Ecken verwendet.Windows UI Library 2.2 or later includes a new template for this control that uses rounded corners. Weitere Informationen finden Sie unter Eckradius.For more info, see Corner radius. WinUI ist ein NuGet-Paket, das neue Steuerelemente und Benutzeroberflächenfeatures für Windows-Apps enthält.WinUI is a NuGet package that contains new controls and UI features for Windows apps. Weitere Informationen, einschließlich Installationsanweisungen, finden Sie unter Windows UI Library (Windows-UI-Bibliothek).For more info, including installation instructions, see Windows UI Library.

Plattform-APIs: ContentDialog-KlassePlatform APIs: ContentDialog class

Ist dies das richtige Steuerelement?Is this the right control?

Verwenden Sie Dialogfelder, um Benutzern wichtige Informationen mitzuteilen oder deren Bestätigung bzw. zusätzliche Informationen anzufordern, bevor eine Aktion abgeschlossen werden kann.Use dialogs to notify users of important information or to request confirmation or additional info before an action can be completed.

Empfehlungen dazu, wann ein Dialogfeld und wann ein Flyout (ein ähnliches Steuerelement) verwendet werden sollte, finden Sie unter Dialogfelder und Flyouts.For recommendations on when to use a dialog vs. when to use a flyout (a similar control), see Dialogs and flyouts.

BeispieleExamples

XAML-SteuerelementekatalogXAML Controls Gallery
XAML controls gallery

Wenn Sie die App XAML-Steuerelementekatalog installiert haben, klicken Sie hier, um die App zu öffnen und ContentDialog oder Flyout in Aktion zu sehen.If you have the XAML Controls Gallery app installed, click here to open the app and see the ContentDialog or Flyout in action.

Allgemeine RichtlinienGeneral guidelines

  • Sie sollten das Problem oder das Ziel des Benutzers in der ersten Zeile des Dialogfeldtexts deutlich benennen.Clearly identify the issue or the user's objective in the first line of the dialog's text.
  • Der Dialogfeldtitel ist die Hauptanweisung und optional.The dialog title is the main instruction and is optional.
    • Verwenden Sie einen kurzen Titel, um dem Benutzer die erforderlichen Aktionen im Dialogfeld zu erklären.Use a short title to explain what people need to do with the dialog.
    • Wenn Sie mit dem Dialogfeld eine einfache Meldung, einen Fehler oder eine Frage anzeigen möchten, können Sie den Titel optional auslassen.If you're using the dialog to deliver a simple message, error or question, you can optionally omit the title. Vermitteln Sie dann im Inhalt die wichtigsten Informationen.Rely on the content text to deliver that core information.
    • Stellen Sie sicher, dass sich der Titel direkt auf die Auswahlmöglichkeiten der Schaltflächen bezieht.Make sure that the title relates directly to the button choices.
  • Der Inhalt des Dialogfelds enthält den beschreibenden Text und ist erforderlich.The dialog content contains the descriptive text and is required.
    • Stellen Sie die Meldung, den Fehler oder die blockierende Frage so einfach wie möglich dar.Present the message, error, or blocking question as simply as possible.
    • Stellen Sie bei Verwendung eines Dialogfeldtitels mithilfe des Inhaltsbereichs weitere Details bereit, oder definieren Sie Terminologie.If a dialog title is used, use the content area to provide more detail or define terminology. Wiederholen Sie nicht den Titel mit anderen Worten.Don't repeat the title with slightly different wording.
  • Mindestens eine Dialogfeldschaltfläche muss angezeigt werden.At least one dialog button must appear.
    • Stellen Sie sicher, dass Ihr Dialogfeld mindestens eine Schaltfläche enthält, die eine sichere, nicht-destruktive Aktion wie „Alles klar!“, „Schließen“ oder „Abbrechen“ auslöst.Ensure that your dialog has at least one button corresponding to a safe, nondestructive action like "Got it!", "Close", or "Cancel". Verwenden Sie die CloseButton-API, um diese Schaltfläche hinzuzufügen.Use the CloseButton API to add this button.
    • Verwenden Sie für den Schaltflächentext konkrete Antworten auf die Hauptanweisung oder den Inhalt.Use specific responses to the main instruction or content as button text. Beispiel: "Möchten Sie AppName den Zugriff auf Ihren Standort erlauben?", gefolgt von den Schaltflächen "Zulassen" und "Blockieren".An example is, "Do you want to allow AppName to access your location?", followed by "Allow" and "Block" buttons. Klare Antworten erleichtern das Verständnis und damit die schnelle Entscheidungsfindung.Specific responses can be understood more quickly, resulting in efficient decision making.
    • Stellen Sie sicher, dass der Text der Aktionsschaltflächen kurz ist.Ensure that the text of the action buttons is concise. Kurze Anweisungen ermöglichen dem Benutzer, eine Entscheidung schnell und zuverlässig zu treffen.Short strings enable the user to make a choice quickly and confidently.
    • Zusätzlich zur sicheren, nicht-destruktiven Aktion können Sie dem Benutzer optional eine oder zwei Aktionsschaltflächen anzeigen, die im Zusammenhang mit der Hauptanweisung stehen.In addition to the safe, nondestructive action, you may optionally present the user with one or two action buttons related to the main instruction. Diese „bestätigenden“ Aktionsschaltflächen unterstreichen den Hauptgrund des Dialogfelds.These "do it" action buttons confirm the main point of the dialog. Verwenden Sie die PrimaryButton- und SecondaryButton-APIs, um diese „bestätigenden“ Aktionen hinzufügen.Use the PrimaryButton and SecondaryButton APIs to add these "do it" actions.
    • Die „bestätigenden“ Aktionsschaltflächen sollten als die am weitesten links stehenden Schaltflächen angezeigt werden.The "do it" action button(s) should appear as the leftmost buttons. Die sichere, nicht-destruktive Aktion sollte als die am weitesten rechts stehende Schaltfläche angezeigt werden.The safe, nondestructive action should appear as the rightmost button.
    • Sie können optional eine der drei Schaltflächen als Standardschaltfläche des Dialogfelds festlegen.You may optionally choose to differentiate one of the three buttons as the dialog's default button. Verwenden Sie die DefaultButton-API, um eine der Schaltflächen abzugrenzen.Use the DefaultButton API to differentiate one of the buttons.
  • Verwenden Sie Dialogfelder nicht für kontextbezogene Fehler, die sich auf eine bestimmte Stelle auf der Seite beziehen, beispielsweise Validierungsfehler (wie in Kennwortfeldern). Verwenden Sie die Canvas der App selbst zum Anzeigen von Inlinefehlern.Don't use dialogs for errors that are contextual to a specific place on the page, such as validation errors (in password fields, for example), use the app's canvas itself to show inline errors.
  • Verwenden Sie die ContentDialog-Klasse, um Ihre Dialogfeldumgebung zu erstellen.Use the ContentDialog class to build your dialog experience. Verwenden Sie nicht die veraltete MessageDialog-API.Don't use the deprecated MessageDialog API.

Erstellen eines DialogfeldsHow to create a dialog

Um ein Dialogfeld zu erstellen, verwenden Sie die ContentDialog-Klasse.To create a dialog, you use the ContentDialog class. Sie können ein Dialogfeld im Code oder Markup erstellen.You can create a dialog in code or markup. Obwohl es in der Regel leichter ist, UI-Elemente in XAML zu definieren, ist es bei einem einfachen Dialogfeld unkomplizierter, Code zu verwenden.Although its usually easier to define UI elements in XAML, in the case of a simple dialog, it's actually easier to just use code. In diesem Beispiel wird ein Dialogfeld erstellt, um dem Benutzer mitzuteilen, dass keine WLAN-Verbindung vorhanden ist. Für die Anzeige wird die Methode ShowAsync verwendet.This example creates a dialog to notify the user that there's no WiFi connection, and then uses the ShowAsync method to display it.

private async void DisplayNoWifiDialog()
{
    ContentDialog noWifiDialog = new ContentDialog
    {
        Title = "No wifi connection",
        Content = "Check your connection and try again.",
        CloseButtonText = "Ok"
    };

    ContentDialogResult result = await noWifiDialog.ShowAsync();
}

Wenn der Benutzer auf eine Dialogfeldschaltfläche klickt, gibt die Methode ShowAsync ein ContentDialogResult zurück, damit Sie wissen, auf welche Schaltfläche der Benutzer klickt.When the user clicks a dialog button, the ShowAsync method returns a ContentDialogResult to let you know which button the user clicks.

Das Dialogfeld in diesem Beispiel stellt eine Frage und verwendet das zurückgegebene ContentDialogResult, um die Antwort des Benutzers zu ermitteln.The dialog in this example asks a question and uses the returned ContentDialogResult to determine the user's response.

private async void DisplayDeleteFileDialog()
{
    ContentDialog deleteFileDialog = new ContentDialog
    {
        Title = "Delete file permanently?",
        Content = "If you delete this file, you won't be able to recover it. Do you want to delete it?",
        PrimaryButtonText = "Delete",
        CloseButtonText = "Cancel"
    };

    ContentDialogResult result = await deleteFileDialog.ShowAsync();

    // Delete the file if the user clicked the primary button.
    /// Otherwise, do nothing.
    if (result == ContentDialogResult.Primary)
    {
        // Delete the file.
    }
    else
    {
        // The user clicked the CLoseButton, pressed ESC, Gamepad B, or the system back button.
        // Do nothing.
    }
}

Bereitstellen einer sicheren AktionProvide a safe action

Weil Dialogfelder eine Benutzerinteraktion blockieren und Schaltflächen das primäre Mittel für die Benutzer zum Schließen eines Dialogfelds sind, sollten Sie sicherstellen, dass Ihr Dialogfeld mindestens eine „sichere“, nicht-destruktive Schaltfläche wie z.B. „Schließen“ oder „Alles klar!“ enthält.Because dialogs block user interaction, and because buttons are the primary mechanism for users to dismiss the dialog, ensure that your dialog contains at least one "safe" and nondestructive button such as "Close" or "Got it!". Alle Dialogfelder sollten mindestens eine sichere Aktionsschaltfläche zum Schließen enthalten.All dialogs should contain at least one safe action button to close the dialog. Dadurch wird sichergestellt, dass der Benutzer das Dialogfeld zuverlässig schließen kann, ohne eine Aktion auszuführen.This ensures that the user can confidently close the dialog without performing an action.
Dialogfeld mit einer SchaltflächeAn one button dialog

private async void DisplayNoWifiDialog()
{
    ContentDialog noWifiDialog = new ContentDialog
    {
        Title = "No wifi connection",
        Content = "Check your connection and try again.",
        CloseButtonText = "Ok"
    };

    ContentDialogResult result = await noWifiDialog.ShowAsync();
}

Wenn Dialogfelder dazu verwendet werden, eine blockierende Frage anzuzeigen, sollte Ihr Dialogfeld dem Benutzer Aktionsschaltflächen im Zusammenhang mit dieser Frage anzeigen.When dialogs are used to display a blocking question, your dialog should present the user with action buttons related to the question. Die „sichere“, nicht-destruktive Schaltfläche kann durch eine oder zwei „bestätigende“ Aktionsschaltflächen ergänzt werden.The "safe" and nondestructive button may be accompanied by one or two "do it" action buttons. Wenn dem Benutzer mehrere Optionen angezeigt werden, stellen Sie sicher, dass die Schaltflächen für die „bestätigende“ und die sichere/„ablehnende“ Aktion den Bezug zur Frage eindeutig darstellen.When presenting the user with multiple options, ensure that the buttons clearly explain the "do it" and safe/"don't do it" actions related to the question proposed.

Dialogfeld mit zwei Schaltflächen

private async void DisplayLocationPromptDialog()
{
    ContentDialog locationPromptDialog = new ContentDialog
    {
        Title = "Allow AppName to access your location?",
        Content = "AppName uses this information to help you find places, connect with friends, and more.",
        CloseButtonText = "Block",
        PrimaryButtonText = "Allow"
    };

    ContentDialogResult result = await locationPromptDialog.ShowAsync();
}

Dialogfelder mit drei Schaltflächen werden verwendet, wenn Sie dem Benutzer zwei „bestätigende“ Aktionen und eine „ablehnende“ Aktion bieten möchten.Three button dialogs are used when you present the user with two "do it" actions and a "don't do it" action. Dialogfelder mit drei Schaltflächen sollten sparsam verwendet werden und eine klare Unterscheidung zwischen der Sekundäraktion und der sicheren/ablehnenden Aktion enthalten.Three button dialogs should be used sparingly with clear distinctions between the secondary action and the safe/close action.

Dialogfeld mit drei Schaltflächen

private async void DisplaySubscribeDialog()
{
    ContentDialog subscribeDialog = new ContentDialog
    {
        Title = "Subscribe to App Service?",
        Content = "Listen, watch, and play in high definition for only $9.99/month. Free to try, cancel anytime.",
        CloseButtonText = "Not Now",
        PrimaryButtonText = "Subscribe",
        SecondaryButtonText = "Try it"
    };

    ContentDialogResult result = await subscribeDialog.ShowAsync();
}

Die drei Schaltflächen des DialogfeldsThe three dialog buttons

„ContentDialog“ umfasst drei unterschiedliche Arten von Schaltflächen, die Sie zur Erstellung einer Dialogfeldumgebung verwenden können.ContentDialog has three different types of buttons that you can use to build a dialog experience.

  • CloseButton – erforderlich – Stellt die sichere, nicht-destruktive Aktion dar, die es dem Benutzer ermöglicht, das Dialogfeld zu schließen.CloseButton - Required - Represents the safe, nondestructive action that enables the user to exit the dialog. Wird als die am weitesten rechts stehende Schaltfläche angezeigt.Appears as the rightmost button.
  • PrimaryButton – optional – Stellt die erste „bestätigende“ Aktion dar.PrimaryButton - Optional - Represents the first "do it" action. Wird als die am weitesten links stehende Schaltfläche angezeigt.Appears as the leftmost button.
  • SecondaryButton – optional – Stellt die zweite „bestätigende“ Aktion dar.SecondaryButton - Optional - Represents the second "do it" action. Wird als die mittlere Schaltfläche angezeigt.Appears as the middle button.

Mithilfe der integrierten Schaltflächen kann das Dialogfeld an andere Dialogfelder optisch angepasst und die Position der Schaltflächen passend ausgerichtet werden. Stellen Sie sicher, dass die Schaltflächen auf Tastaturbefehle entsprechend reagieren und der Befehlsbereich sichtbar bleibt, auch wenn die Bildschirmtastatur aufgerufen ist.Using the built-in buttons will position the buttons appropriately, ensure that they correctly respond to keyboard events, ensure that the command area remains visible even when the on-screen keyboard is up, and will make the dialog look consistent with other dialogs.

CloseButtonCloseButton

Jedes Dialogfeld sollte eine sichere, nicht-destruktive Aktionsschaltfläche enthalten, die dem Benutzer das zuverlässige Beenden ermöglicht.Every dialog should contain a safe, nondestructive action button that enables the user to confidently exit the dialog.

Verwenden Sie die ContentDialog.CloseButton-API, um diese Schaltfläche zu erstellen.Use the ContentDialog.CloseButton API to create this button. Dadurch schaffen Sie die jeweils richtige Benutzerumgebung für alle Eingabemöglichkeiten wie z.B. Maus, Tastatur, Toucheingabe und Gamepad.This allows you to create the right user experience for all inputs including mouse, keyboard, touch, and gamepad. Dies ist nötig, wenn:This experience will happen when:

  1. Der Benutzer auf CloseButton klickt oder tipptThe user clicks or taps on the CloseButton
  2. Der Benutzer die Zurück-Taste des Systems drücktThe user presses the system back button
  3. Der Benutzer die ESC-Schaltfläche auf der Tastatur drücktThe user presses the ESC button on the keyboard
  4. Der Benutzer auf dem Gamepad die B-Taste drücktThe user presses Gamepad B

Wenn der Benutzer auf eine Dialogfeldschaltfläche klickt, gibt die Methode ShowAsync ein ContentDialogResult zurück, damit Sie wissen, auf welche Schaltfläche der Benutzer klickt.When the user clicks a dialog button, the ShowAsync method returns a ContentDialogResult to let you know which button the user clicks. Beim Klicken auf CloseButton wird „ContentDialogResult.None“ zurückgegeben.Pressing on the CloseButton returns ContentDialogResult.None.

PrimaryButton und SecondaryButtonPrimaryButton and SecondaryButton

Zusätzlich zu CloseButton können Sie dem Benutzer optional ein oder zwei Aktionsschaltflächen anzeigen, die im Zusammenhang mit der Hauptanweisung stehen.In addition to the CloseButton, you may optionally present the user with one or two action buttons related to the main instruction. Nutzen Sie PrimaryButton für die erste „bestätigende“ Aktion und SecondaryButton für die zweite „bestätigende“ Aktion.Leverage PrimaryButton for the first "do it" action, and SecondaryButton for the second "do it" action. Bei Dialogfeldern mit drei Schaltflächen stellt PrimaryButton in der Regel eine eindeutig „bestätigende“ Aktion dar, während SecondaryButton in der Regel eine neutrale oder sekundäre, „bestätigende“ Aktion darstellt.In three-button dialogs, the PrimaryButton generally represents the affirmative "do it" action, while the SecondaryButton generally represents a neutral or secondary "do it" action. Beispielsweise kann eine App den Benutzer dazu auffordern, einen Dienst zu abonnieren.For example, an app may prompt the user to subscribe to a service. In diesem Fall ist PrimaryButton die eindeutig „bestätigende“ Aktion und enthält den Text „Abonnieren“, während SecondaryButton als neutrale, „bestätigende“ Aktion den Text „Testen“ enthält.The PrimaryButton as the affirmative "do it" action would host the Subscribe text, while the SecondaryButton as the neutral "do it" action would host the Try it text. CloseButton ermöglicht dem Benutzer in diesem Fall, die Aktion ohne Interaktion abzubrechen.The CloseButton would allow the user to cancel without performing either action.

Wenn der Benutzer auf PrimaryButton klickt, wird von der ShowAsync-Methode „ContentDialogResult.Primary“ zurückgegeben.When the user clicks on the PrimaryButton, the ShowAsync method returns ContentDialogResult.Primary. Klickt der Benutzer auf SecondaryButton, wird von der ShowAsync-Methode „ContentDialogResult.Primary“ zurückgegeben.When the user clicks on the SecondaryButton, the ShowAsync method returns ContentDialogResult.Secondary.

Dialogfeld mit drei Schaltflächen

DefaultButtonDefaultButton

Sie können optional eine der drei Schaltflächen als Standardschaltfläche festlegen.You may optionally choose to differentiate one of the three buttons as the default button. Das Festlegen einer Standardschaltfläche hat zur Folge, dass:Specifying the default button causes the following to happen:

  • die Schaltfläche optisch als Akzentschaltfläche behandelt wirdThe button receives the Accent Button visual treatment
  • die Schaltfläche auf die EINGABETASTE automatisch reagiertThe button will respond to the ENTER key automatically
    • Wenn der Benutzer auf der Tastatur die EINGABETASTE drückt, wird der mit der Standardschaltfläche verknüpfte Click-Handler ausgelöst und „ContentDialogResult“ gibt den mit der Standardschaltfläche verknüpften Wert zurück.When the user presses the ENTER key on the keyboard, the click handler associated with the Default Button will fire and the ContentDialogResult will return the value associated with the Default Button
    • Hat der Benutzer den Tastaturfokus auf ein Steuerelement gelegt, das für die EINGABETASTE zuständig ist, reagiert die Standardschaltfläche nicht, wenn diese Taste gedrückt wird.If the user has placed Keyboard Focus on a control that handles ENTER, the Default Button will not respond to ENTER presses
  • Die Schaltfläche erhält den Fokus automatisch, wenn das Dialogfeld geöffnet wird – es sei denn, der Inhalt des Dialogfelds enthält eine fokussierbare Benutzeroberfläche.The button will receive focus automatically when the Dialog is opened unless the dialog's content contains focusable UI

Verwenden Sie die „ContentDialog.DefaultButton“-Eigenschaft, um die Standardschaltfläche anzugeben.Use the ContentDialog.DefaultButton property to indicate the default button. Standardmäßig wird keine Standardschaltfläche festgelegt.By default, no default button is set.

Dialogfeld mit drei Schaltflächen mit einer Standardschaltfläche

private async void DisplaySubscribeDialog()
{
    ContentDialog subscribeDialog = new ContentDialog
    {
        Title = "Subscribe to App Service?",
        Content = "Listen, watch, and play in high definition for only $9.99/month. Free to try, cancel anytime.",
        CloseButtonText = "Not Now",
        PrimaryButtonText = "Subscribe",
        SecondaryButtonText = "Try it",
        DefaultButton = ContentDialogButton.Primary
    };

    ContentDialogResult result = await subscribeDialog.ShowAsync();
}

Bestätigungsdialogfelder (OK/Abbrechen)Confirmation dialogs (OK/Cancel)

In einem Bestätigungsdialogfeld können Benutzer bestätigen, dass sie eine Aktion ausführen möchten.A confirmation dialog gives users the chance to confirm that they want to perform an action. Sie können die Aktion bestätigen oder den Vorgang abbrechen.They can affirm the action, or choose to cancel. Ein typisches Bestätigungsdialogfeld verfügt über zwei Schaltflächen: eine Schaltfläche zur Bestätigung („OK“) und eine Schaltfläche zum Abbrechen.A typical confirmation dialog has two buttons: an affirmation ("OK") button and a cancel button.

  • Die Bestätigungsschaltfläche sollte sich im Allgemeinen auf der linken Seite (die primäre Schaltfläche) und die Abbruchschaltfläche (die sekundäre Schaltfläche) auf der rechten Seite befinden.In general, the affirmation button should be on the left (the primary button) and the cancel button (the secondary button) should be on the right.

    An OK/cancel dialog
  • Wie in den allgemeinen Empfehlungen erwähnt, sollten Sie Schaltflächen mit Text verwenden, der konkrete Antworten auf die Hauptanweisung bzw. den Hauptinhalt bietet.As noted in the general recommendations section, use buttons with text that identifies specific responses to the main instruction or content.

Auf einigen Plattformen befindet sich die Bestätigungsschaltfläche auf der rechten anstatt auf der linken Seite.Some platforms put the affirmation button on the right instead of the left. Warum empfehlen wir die Platzierung auf der linken Seite?So why do we recommend putting it on the left? Wenn Sie davon ausgehen, dass die meisten Benutzer Rechtshänder sind und ihr Telefon in dieser Hand halten, ist es bequemer, eine Bestätigungsschaltfläche zu drücken, die sich auf der linken Seite befindet, weil sie für den Benutzer wahrscheinlich einfacher mit dem Daumen erreichbar ist. Bei Schaltflächen auf der rechten Bildschirmseite muss der Benutzer seinen Daumen in eine weniger bequeme Position nach innen bewegen.If you assume that the majority of users are right-handed and they hold their phone with that hand, it's actually more comfortable to press the affirmation button when it's on the left, because the button is more likely to be within the user's thumb-arc. Buttons on the right-side of the screen require the user to pull their thumb inward into a less-comfortable position.

„ContentDialog“ in „AppWindow“ oder „XAML-Inseln“ContentDialog in AppWindow or Xaml Islands

HINWEIS: Dieser Abschnitt gilt nur für Apps für Windows 10, Version 1903 oder höher.NOTE: This section applies only to apps that target Windows 10, version 1903 or later. „AppWindow“ und „XAML-Inseln“ sind in früheren Versionen nicht verfügbar.AppWindow and XAML Islands are not available in earlier versions. Weitere Informationen zu Versionen finden Sie unter Versionsadaptive Apps.For more info about versioning, see Version adaptive apps.

Inhaltsdialogfelder werden standardmäßig modal relativ zum Stamm ApplicationView angezeigt.By default, content dialogs display modally relative to the root ApplicationView. Wenn Sie „ContentDialog“ in einem AppWindow oder einer XAML-Insel verwenden, müssen Sie den Wert für XamlRoot im Dialogfeld manuell auf den Stamm des XAML-Hosts festlegen.When you use ContentDialog inside of either an AppWindow or a XAML Island, you need to manually set the XamlRoot on the dialog to the root of the XAML host.

Legen Sie hierzu die „XamlRoot“-Eigenschaft von „ContentDialog“ auf denselben „XamlRoot“-Wert wie bei einem in „AppWindow“ oder „XAML-Insel“ bereits vorhandenen Element fest, wie hier gezeigt wird.To do so, set the ContentDialog's XamlRoot property to the same XamlRoot as an element already in the AppWindow or XAML Island, as shown here.

private async void DisplayNoWifiDialog()
{
    ContentDialog noWifiDialog = new ContentDialog
    {
        Title = "No wifi connection",
        Content = "Check your connection and try again.",
        CloseButtonText = "Ok"
    };

    // Use this code to associate the dialog to the appropriate AppWindow by setting
    // the dialog's XamlRoot to the same XamlRoot as an element that is already present in the AppWindow.
    if (ApiInformation.IsApiContractPresent("Windows.Foundation.UniversalApiContract", 8))
    {
        noWifiDialog.XamlRoot = elementAlreadyInMyAppWindow.XamlRoot;
    }

    ContentDialogResult result = await noWifiDialog.ShowAsync();
}

Warnung

Es kann jeweils nur ein „ContentDialog“ pro Thread geöffnet sein.There can only be one ContentDialog open per thread at a time. Ein Versuch, zwei „ContentDialogs“ zu öffnen, löst eine Ausnahme selbst dann aus, wenn das Öffnen in getrennten „AppWindows“ geschehen soll.Attempting to open two ContentDialogs will throw an exception, even if they are attempting to open in separate AppWindows.

Beispielcode herunterladenGet the sample code