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();
}
{
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();
}

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.
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.
}
{
TaskDialog td = sender as TaskDialog;
td.Close( TaskDialogResult.Cancel);
}
void sendBtn_Click(object sender, EventArgs e)
{
// Etwas sinnvolles tun.
}