TOC

This article is currently in the process of being translated into Dutch (~95% done).

Dialogen:

Het dialoog venster

WPF biedt verschillende dialoogvensters die uw toepassing kan gebruiken, maar de eenvoudigste is zeker het dialoog venster. Het enige doel is om een ​​bericht aan de gebruiker te tonen. het bied vervolgens een of meer manieren aan waarop de gebruiker op het bericht kan reageren.

Het dialoog venster wordt gebruikt door de statische Show() methode aan te roepen, die een reeks verschillende parameters kan aannemen zodat het er uit ziet en zich gedraagt zoals u wilt. We zullen verschillende formulieren in dit artikel doornemen, waarbij elke variatie wordt vertegenwoordigd door de regel MessageBox.Show() en een screenshot van het resultaat. Aan het einde van het artikel vindt u een compleet voorbeeld waarmee u alle varianten kunt testen.

In de meest simpele vorm neemt het dialoog venster slechts één parameter, namelijk het bericht dat moet worden weergegeven:

MessageBox.Show("Hello, world!");

Dialoog venster met een titel

Het bovenstaande voorbeeld is misschien een beetje minimalistisch voorbeeld - een titel in het venster met het bericht zou waarschijnlijk helpen. Gelukkig is de tweede en optioneel parameter die ons in staat stelt om de titel te specificeren:

MessageBox.Show("Hello, world!", "My App");

Dialoog venster met extra knoppen

Standaard heeft dialoog venster slechts één Ok knop, maar deze kan worden gewijzigd, voor het geval uw gebruiker een vraag wilt stellen en niet alleen een stukje informatie. Merk ook op hoe er meerdere regels worden gebruikt in dit bericht, door een regeleinde-teken (\ n) te gebruiken:

MessageBox.Show("This MessageBox has extra options.\n\nHello, world?", "My App", MessageBoxButton.YesNoCancel);

U bepaalt welke knoppen worden weergegeven door een waarde uit de MessageBoxButton datatype te gebruiken, in dit geval is een knop Ja, Nee en Annuleren inbegrepen. De de volgende waarden, die voor zichzelf zouden moeten spreken, kunnen worden gebruikt:

  • OK (Oke)
  • OKCancel (oke en Annuleren)
  • YesNoCancel (Ja Nee en Annuleren)
  • YesNo (Ja en Nee)

Nu met meerdere keuzes, hebt u een manier nodig om te kunnen zien wat de gebruiker heeft gekozen, en gelukkig retourneert de methode MessageBox.Show() altijd een waarde van de MessageBoxResult datatype die u kunt gebruiken. Hier is een voorbeeld:

MessageBoxResult result = MessageBox.Show("Would you like to greet the world with a \"Hello, world\"?", "My App", MessageBoxButton.YesNoCancel);
switch(result)
{
	case MessageBoxResult.Yes:
		MessageBox.Show("Hello to you too!", "My App");
		break;
	case MessageBoxResult.No:
		MessageBox.Show("Oh well, too bad!", "My App");
		break;
	case MessageBoxResult.Cancel:
		MessageBox.Show("Nevermind then...", "My App");
		break;
}

Door de resultaatwaarde van de methode MessageBox.Show() te controleren, kunt u reageren op de keuze van de gebruiker, zoals te zien is in het codevoorbeeld en op de screenshots.

Dialoog venster met een icoon

Het dialoog venster heeft de mogelijkheid om een vooraf gedefinieerd pictogram links van het tekstbericht weer te geven door middel van een vierde parameter:

MessageBox.Show("Hello, world!", "My App", MessageBoxButton.OK, MessageBoxImage.Information);

Met behulp van de MessageBoxImage datatype, kunt u kiezen uit een reeks pictogrammen voor verschillende situaties. De complete lijst:

  • Asterisk (Sterretje)
  • Error (Fout)
  • Exclamation (Uitroepteken)
  • Hand (Hand)
  • Information (Informatie)
  • None (Niets)
  • Question (Vraag)
  • Stop (Stop)
  • Warning (Waarschuwing)

De namen zouden veel moeten zeggen over hoe ze eruitzien, maar voel je vrij om te experimenteren met de verschillende waarden of bekijk dit MSDN-artikel, waar elke waarde wordt uitgelegd en zelfs geïllustreerd: http://msdn.microsoft.com/en-us/library/system.windows.messageboximage.aspx

Het dialoog venster met een standaardoptie

Het dialoog venster zal een knop selecteren als de standaardkeuze, en dat is dan de knop die wordt aangeroepen als de gebruiker gewoon op Enter drukt zodra het dialoogvenster wordt weergegeven. Als u bijvoorbeeld een dialoog venster weergeeft met een "Ja" en een "Nee" knop, is "Ja" het standaardantwoord. U kunt dit gedrag wijzigen met een vijfde parameter mee te geven aan de MessageBox.Show() methode:

MessageBox.Show("Hello, world?", "My App", MessageBoxButton.YesNo, MessageBoxImage.Question, MessageBoxResult.No);

Merk op dat op de schermafbeelding hoe de "Nee" knop enigszins verhoogd is, om visueel aan te geven dat deze is geselecteerd en zal worden aangeroepen als de Enter of Spatie knop wordt ingedrukt.

Het complete voorbeeld

Zoals beloofd, hier is het volledige voorbeeld dat in dit is artikel gebruikt:

<Window x:Class="WpfTutorialSamples.Dialogs.MessageBoxSample"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MessageBoxSample" Height="250" Width="300">
    <StackPanel HorizontalAlignment="Center" VerticalAlignment="Center">
        <StackPanel.Resources>
            <Style TargetType="Button">
                <Setter Property="Margin" Value="0,0,0,10" />
            </Style>
        </StackPanel.Resources>
        <Button Name="btnSimpleMessageBox" Click="btnSimpleMessageBox_Click">Simple MessageBox</Button>
        <Button Name="btnMessageBoxWithTitle" Click="btnMessageBoxWithTitle_Click">MessageBox with title</Button>
        <Button Name="btnMessageBoxWithButtons" Click="btnMessageBoxWithButtons_Click">MessageBox with buttons</Button>
        <Button Name="btnMessageBoxWithResponse" Click="btnMessageBoxWithResponse_Click">MessageBox with response</Button>
        <Button Name="btnMessageBoxWithIcon" Click="btnMessageBoxWithIcon_Click">MessageBox with icon</Button>
        <Button Name="btnMessageBoxWithDefaultChoice" Click="btnMessageBoxWithDefaultChoice_Click">MessageBox with default choice</Button>
    </StackPanel>
</Window>
using System;
using System.Windows;

namespace WpfTutorialSamples.Dialogs
{
	public partial class MessageBoxSample : Window
	{
		public MessageBoxSample()
		{
			InitializeComponent();
		}

		private void btnSimpleMessageBox_Click(object sender, RoutedEventArgs e)
		{
			MessageBox.Show("Hello, world!");
		}

		private void btnMessageBoxWithTitle_Click(object sender, RoutedEventArgs e)
		{
			MessageBox.Show("Hello, world!", "My App");
		}

		private void btnMessageBoxWithButtons_Click(object sender, RoutedEventArgs e)
		{
			MessageBox.Show("This MessageBox has extra options.\n\nHello, world?", "My App", MessageBoxButton.YesNoCancel);
		}

		private void btnMessageBoxWithResponse_Click(object sender, RoutedEventArgs e)
		{
			MessageBoxResult result = MessageBox.Show("Would you like to greet the world with a \"Hello, world\"?", "My App", MessageBoxButton.YesNoCancel);
			switch(result)
			{
				case MessageBoxResult.Yes:
					MessageBox.Show("Hello to you too!", "My App");
					break;
				case MessageBoxResult.No:
					MessageBox.Show("Oh well, too bad!", "My App");
					break;
				case MessageBoxResult.Cancel:
					MessageBox.Show("Nevermind then...", "My App");
					break;
			}
		}

		private void btnMessageBoxWithIcon_Click(object sender, RoutedEventArgs e)
		{
			MessageBox.Show("Hello, world!", "My App", MessageBoxButton.OK, MessageBoxImage.Information);
		}

		private void btnMessageBoxWithDefaultChoice_Click(object sender, RoutedEventArgs e)
		{
			MessageBox.Show("Hello, world?", "My App", MessageBoxButton.YesNo, MessageBoxImage.Question, MessageBoxResult.No);
		}
	}
}

This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!