51 votes

Où est la boîte de dialogue du sélecteur de fichiers dans WPF ?

http://i.minus.com/i3xuoWZkpfxHn.png

Je ne vois rien qui me permette de sélectionner des fichiers sur mon ordinateur... il doit bien y en avoir un, où est-il ? J'ai probablement oublié une référence ?


Editar: Ce que j'avais en tête était une zone de texte avec un bouton "Parcourir" à côté. Je me rends compte maintenant que je dois probablement placer moi-même la zone de texte et le bouton "Parcourir" et ajouter un événement de clic au bouton pour ouvrir la boîte de dialogue...

0 votes

Le lien est rompu.

0 votes

@TobiMcNamobi Ouais... c'est sûr. Désolé. Je ne l'ai trouvé dans aucune archive.

62voto

Anna Lear Points 13919

Il n'existe pas de contrôle intégré comportant une zone de texte avec un bouton [Browse] à côté. Vous devez le configurer vous-même.

Pour la boîte de dialogue "ouvrir un fichier" elle-même, il y a l'option OpenFileDialog dans l'espace de noms Microsoft.Win32 .

3 votes

Par curiosité, en quoi le OpenFileDialog de l'espace de noms Microsoft.Win32 diffère-t-il de celui de l'espace de noms System.Windows.Forms ?

7 votes

@MattBridges Je crois que c'est essentiellement la version WPF de la boîte de dialogue WinForms qui ne nécessite pas de faire référence à System.Windows.Forms.dll.

31voto

Chris Marisic Points 11495

Pour une réponse plus complète, supposez que vous avez un Bouton BtnFileOpen et une zone de texte TxtFile . Tout d'abord, vous devez faire référence au System.Windows.Forms à partir de la boîte de dialogue des références (assurez-vous de le cocher, un double-clic ne semble pas l'ajouter pour moi).

Dans l'événement de clic du bouton :

private void BtnFileOpen_Click(object sender, RoutedEventArgs e)
{
    var fileDialog = new System.Windows.Forms.OpenFileDialog();
    var result = fileDialog.ShowDialog();
    switch (result)
    {
        case System.Windows.Forms.DialogResult.OK:
            var file = fileDialog.FileName;
            TxtFile.Text = file;
            TxtFile.ToolTip = file;
            break;
        case System.Windows.Forms.DialogResult.Cancel:
        default:
            TxtFile.Text = null;
            TxtFile.ToolTip = null;
            break;
    }
}

Si vous avez désactivé votre zone de texte, vous pouvez modifier votre xaml pour inclure

ToolTipService.ShowOnDisabled="True"

5voto

joe Points 333

En général, j'utilise simplement le OpenFileDialog en el System.Windows.Forms espace de noms. Je l'ai aliasé en utilisant SWF et puis ça devient juste

SWF.OpenFileDialog o = new SWF.OpenFileDialog();

0 votes

Et si vous voulez utiliser un sélecteur de fichiers pour l'invite du sélecteur d'enregistrement de fichier, il suffit de changer OpenFileDialog a SaveFileDialog

0 votes

Quel est l'avantage d'utiliser System.Windows.Forms.OpenFileDialog au lieu de Microsoft.Win32.OpenFileDialog ?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X