OpenFileDialog en una aplicació WPF

Realment estem molt ben acostumats amb Winforms al tenir molts controls a la barra d’eines per insertar. En WPF els trobem a faltar. Un d’ells és l’OpenFileDialog.

Hi ha dues maneres de poder fer sortir aquest control a les aplicacions WPF. El primer és simplement importar la llibreria System.Windows.Forms al projecte i crear una instància de OpenFileDialog i cridar el ShowDialog manualment. D’aquesta manera fem el mateix que es fa en aplicacions Winforms.

using System.Windows.Forms
//Resta de codi
OpenFileDialog ofile=new OpenFileDialog();
if(ofile.ShowDialog()==DialogResult.OK)
{
}

Una altre manera és importar Microsoft.Win32 i fer servir el codi següent:

using System.Windows.Forms
//Resta de codi
OpenFileDialog ofile=new OpenFileDialog();
bool? ofres=ofile.ShowDialog();
if(ofres.HasValue && ofres.Value)
{
}

La segona opció té un avantatge respecte el primer. Utilitzant System.Windows.Forms estem obligats a obrir el diàleg des de un thread STA. Amb WPF no ho tenim per defecte i moltes vegades necessitem obrir en threads secundaris. En aquest escenari pots utilitzar la segona opció.

Microsoft diu

OpenFileDialog is in the microsoft.win32 namespace.  In WPF the OpenFileDialog is simply a wrapper around the call to win32.

Resum:

Utilitza l’espai de noms Microsoft.Win32 que és més directe i pràctic.

Advertisements

Deixa un comentari

Fill in your details below or click an icon to log in:

WordPress.com Logo

Esteu comentant fent servir el compte WordPress.com. Log Out / Canvia )

Twitter picture

Esteu comentant fent servir el compte Twitter. Log Out / Canvia )

Facebook photo

Esteu comentant fent servir el compte Facebook. Log Out / Canvia )

Google+ photo

Esteu comentant fent servir el compte Google+. Log Out / Canvia )

Connecting to %s