2011-10-23 8 views
39

http://i.minus.com/i3xuoWZkpfxHn.pngDov'è la finestra di dialogo del selettore di file in WPF?

Io non vedo nulla che mi permetteva di ritirare i file dal mio computer ... ci deve essere uno, dove si trova? Probabilmente mi manca un riferimento?


Edit: Quello che avevo in mente era una casella di testo con un pulsante "Sfoglia" accanto ad essa. Ora mi capita di dover posizionare manualmente la casella di testo e il pulsante Sfoglia e aggiungere un evento click al pulsante per aprire la finestra di dialogo ...

+0

Link è rotto. – TobiMcNamobi

+0

@TobiMcNamobi Sì ... certo che lo è. Scusate. Non riesci a trovarlo in nessun archivio. – mpen

risposta

47

Non esiste un controllo incorporato che abbia una casella di testo con un [ Sfoglia] accanto. Devi sistemare te stesso.

Per la finestra di dialogo "file aperto", c'è lo OpenFileDialog in Microsoft.Win32 namespace.

+3

Per curiosità, in che modo OpenFileDialog nello spazio dei nomi Microsoft.Win32 differisce da quello nello spazio dei nomi System.Windows.Forms? –

+6

@MattBridges Credo che sia fondamentalmente la versione WPF della finestra di dialogo WinForms che non richiede il riferimento a System.Windows.Forms.dll. –

4

Generalmente uso solo lo OpenFileDialog nello spazio dei nomi System.Windows.Forms. Preferibile creare un alias utilizzando SWF, e poi diventa solo

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

Per una più completa funzione di risposta, suppone che si abbia un pulsante BtnFileOpen e una casella di testo TxtFile. Innanzitutto è necessario fare riferimento all'assembly System.Windows.Forms dalla finestra di dialogo dei riferimenti (assicurarsi di contrassegnarlo, fare doppio clic su di esso non sembra aggiungerlo per me).

All'interno della manifestazione pulsante di scatto:

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; 
    } 
} 

Se avete impostato la vostra casella di testo per portatori di handicap si potrebbe desiderare di modificare il codice XAML per includere

ToolTipService.ShowOnDisabled="True"

Problemi correlati