Site logo
Site logo
Programmieren aus Leidenschaft
Programmieren aus Leidenschaft

TaskDialog mit Auswahl


Eine weitere Anwendungsmöglichkeit des TaskDialog ist die Anzeige von Auswahlmöglichkeiten, wie sie zum Beispiel im Falle eines Programmfehlers nützlich sein kann. In einem konkreten Beispiel könnte ein Mitteilungsfenster dann wie folgt aussehen
private void btnTaskDialogError_Click(object sender, RoutedEventArgs e)
{
        TaskDialog tdErrorDialog = new TaskDialog();
        tdErrorDialog.DetailsExpanded = false;
        tdErrorDialog.Cancelable = true;
        tdErrorDialog.Icon = TaskDialogStandardIcon.Error;
        tdErrorDialog.Caption ="Fehler Dialog";
        tdErrorDialog.InstructionText =
        "Ein unerwarteter Fehler ist aufgetreten.\nBitte senden Sie uns das Fehlerprotokol.";

        tdErrorDialog.Text = "Die Fehlermeldung steht hier.";
        tdErrorDialog.DetailsExpandedLabel ="Fehlerdetails verbergen";
        tdErrorDialog.DetailsCollapsedLabel = "Fehlerdetails anzeigen";
        tdErrorDialog.DetailsExpandedText = "Hier stehen die Fehlerdetails";
        tdErrorDialog.FooterCheckBoxText ="Dieses Fenster nicht wieder anzeigen";
        tdErrorDialog.FooterCheckBoxChecked = false;
        tdErrorDialog.ExpansionMode =         TaskDialogExpandedDetailsLocation.ExpandFooter;
        TaskDialogCommandLink sendBtn =
         new TaskDialogCommandLink
        ("sendButton",
         "Fehlerprotokol senden\nDas knnte wirklich helfen.");
        sendBtn.Click += new EventHandler(sendBtn_Click);

        TaskDialogCommandLink dontSendBtn = new TaskDialogCommandLink ("dontSendButton",
        "Fehlerprotokol nicht senden\nMeine Fehler gehren mir alleine.");

        dontSendBtn.Click += new EventHandler(dontSendBtn_Click);
        tdErrorDialog.Controls.Add(sendBtn);
        tdErrorDialog.Controls.Add(dontSendBtn);
        tdErrorDialog.Show();
}
stacks_image_9213EA89-F46E-45B6-88AE-12B1DC306381
Der gezeigte Code erzeugt zwei TaskDialogCommandLink, die dem Fenster als Steuerelemente angehängt werden. Verbunden damit sind zwei Events, die aufgerufen werden, wenn der Anwender eine der beiden Auswahlmöglichkeiten anklickt.
 
Die Auswertung der Ereignisse ist dann wieder Aufgabe des Entwicklers.
void dontSendBtn_Click(object sender, EventArgs e)
{
        TaskDialog td = sender as TaskDialog;
        td.Close( TaskDialogResult.Cancel);
}

void sendBtn_Click(object sender, EventArgs e)
{
        // Etwas sinnvolles tun.
}