tag:blogger.com,1999:blog-111443182023-11-15T09:59:54.004-06:00.NET A new try...Blog dedicado a las tecnologías .NET y cuestiones existenciales sobre lo que ronda estas tecnologías.O-Telishttp://www.blogger.com/profile/02803576972553471618noreply@blogger.comBlogger1125tag:blogger.com,1999:blog-11144318.post-77668625294224550082012-05-25T13:42:00.002-05:002012-05-25T13:42:05.174-05:00Manejo de archivos de imágenes en WPF<br />
<div class="MsoNormal">
Hola Qué Tal…<o:p></o:p></div>
<div class="MsoNormal">
En esta ocasión quiero comenzar una serie de artículos sobre
el manejo de archivos de imágenes con .NET.<o:p></o:p></div>
<div class="MsoNormal">
En esta primera parte voy a tratar la manera de cargar un
archivo de imagen en un contenedor de imagen, en este caso usaré WPF y el
control Image que viene incluido en el .NET Framework.<o:p></o:p></div>
<div class="MsoNormal">
Es común que en ocasiones las aplicaciones requieran de
seleccionar archivos y mostrarlos en la interfaz de usuario, bueno, este
ejemplo constará de varias partes para lograr el objetivo.<o:p></o:p></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
Primeramente será
utilizar un <span style="color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;">OpenFileDialog</span> para seleccionar la imagen que
cargaremos en el control image. Obviamente usaremos un botón para esta acción.
Una vez seleccionada la imagen deberemos procesarla para utilizarla como un <span style="color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;">BitmapImage</span> para cargarla en la propiedad Source del
control image.<o:p></o:p></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
Utilizaremos un
formulario con un control Images denominado imgFoto, un botón denominado btnFoto
como se muestra a continuación:<o:p></o:p></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;"><</span><span lang="EN-US" style="color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;">Window</span><span lang="EN-US" style="color: red; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;"> x</span><span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;">:</span><span lang="EN-US" style="color: red; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;">Class</span><span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;">="EjemplosWPF.MainWindow"</span><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;"> <span style="color: red;"> xmlns</span><span style="color: blue;">="http://schemas.microsoft.com/winfx/2006/xaml/presentation"</span><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;"> <span style="color: red;"> xmlns</span><span style="color: blue;">:</span><span style="color: red;">x</span><span style="color: blue;">="http://schemas.microsoft.com/winfx/2006/xaml"</span><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;"> <span style="color: red;"> Title</span><span style="color: blue;">="MainWindow"</span><span style="color: red;">
Height</span><span style="color: blue;">="350"</span><span style="color: red;"> Width</span><span style="color: blue;">="525"></span><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;">
</span><span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;"><</span><span lang="EN-US" style="color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;">Grid</span><span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;">></span><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;">
</span><span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;"><</span><span lang="EN-US" style="color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;">StackPanel</span><span lang="EN-US" style="color: red; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;"> HorizontalAlignment</span><span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;">="Center"</span><span lang="EN-US" style="color: red; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;"> VerticalAlignment</span><span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;">="Center"></span><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;"> </span><span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;"><</span><span lang="EN-US" style="color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;">Image</span><span lang="EN-US" style="color: red; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;"> x</span><span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;">:</span><span lang="EN-US" style="color: red; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;">Name</span><span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;">="imgFoto"</span><span lang="EN-US" style="color: red; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;"> Width</span><span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;">="100"</span><span lang="EN-US" style="color: red; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;"> Height</span><span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;">="100"</span><span lang="EN-US" style="color: red; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;"> Margin</span><span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;">="5"/></span><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;"> </span><span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;"><</span><span lang="EN-US" style="color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;">Button</span><span lang="EN-US" style="color: red; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;"> x</span><span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;">:</span><span lang="EN-US" style="color: red; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;">Name</span><span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;">="btnFoto"</span><span lang="EN-US" style="color: red; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;"> Width</span><span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;">="100"</span><span lang="EN-US" style="color: red; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;"> Height</span><span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;">="25"</span><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;"> <o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;">
<span style="color: red;"> Content</span><span style="color: blue;">="Agregar Foto"</span><span style="color: red;">
Margin</span><span style="color: blue;">="5"</span><span style="color: red;"> Click</span><span style="color: blue;">="btnFoto_Click"/></span><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;">
</span><span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;"></</span><span lang="EN-US" style="color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;">StackPanel</span><span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;">></span><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;">
</span><span style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"></</span><span style="color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;">Grid</span><span style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;">></span><span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"></</span><span style="color: #a31515; font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;">Window</span><span style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;">><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
En el evento click del
botón btnFoto irá lo siguiente:<o:p></o:p></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;">private</span><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;"> <span style="color: blue;">void</span> btnFoto_Click(<span style="color: blue;">object</span> sender, <span style="color: #2b91af;">RoutedEventArgs</span>
e)<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;">{<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;"> <span style="color: blue;">if</span> (imgFoto.Source == <span style="color: blue;">null</span>)
<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;"> {<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;"> <span style="color: #2b91af;">OpenFileDialog</span> openFile = <span style="color: blue;">new</span>
<span style="color: #2b91af;">OpenFileDialog</span>();<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;"> <span style="color: #2b91af;">BitmapImage</span> b = <span style="color: blue;">new</span>
<span style="color: #2b91af;">BitmapImage</span>();<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;">
openFile.Title = <span style="color: #a31515;">"Seleccione la Imagen
a Mostrar"</span>;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;">
openFile.Filter = <span style="color: #a31515;">"Todos(*.*)|*.*|Imagenes|*.jpg;*.gif;*.png;*.bmp"</span>;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;"> </span><span style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;">if</span><span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"> (openFile.ShowDialog() == <span style="color: blue;">true</span>)<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"> {<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;">
b.BeginInit();<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;">
b.UriSource = <span style="color: blue;">new</span> <span style="color: #2b91af;">Uri</span>(openFile.FileName);<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;">
b.EndInit();<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;">
imgFoto.Stretch = <span style="color: #2b91af;">Stretch</span>.Fill;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;">
imgFoto.Source = b; <o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;">
btnFoto.Content = <span style="color: #a31515;">"Quitar Foto"</span>;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;"> }<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;"> }<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;"> <span style="color: blue;">else</span><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;"> </span><span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;">{<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"> imgFoto.Source = <span style="color: blue;">null</span>; <o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"> btnFoto.Content = <span style="color: #a31515;">"Agregar Foto"</span>;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"> }<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;">}<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
Podemos ver que se evalúa si el control
imgFoto ya contiene una imagen o no para cambiar el texto del botón, solo por
funcionalidad. Además, si desean validar el tamaño de la foto que desean cargar
se puede agregar una condición que restrinja esta acción. Quedando el código
opcional del evento click del botón btnFoto como sigue:<o:p></o:p></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;">private</span><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;"> <span style="color: blue;">void</span> btnFoto_Click(<span style="color: blue;">object</span> sender, <span style="color: #2b91af;">RoutedEventArgs</span>
e)<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;">{<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;"> <span style="color: blue;">if</span> (imgFoto.Source == <span style="color: blue;">null</span>)
<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;"> {<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;"> <span style="color: #2b91af;">OpenFileDialog</span> openFile = <span style="color: blue;">new</span>
<span style="color: #2b91af;">OpenFileDialog</span>();<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;"> <span style="color: #2b91af;">BitmapImage</span> b = <span style="color: blue;">new</span>
<span style="color: #2b91af;">BitmapImage</span>();<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;"> </span><span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;">openFile.Title
= <span style="color: #a31515;">"Seleccione la Imagen a Mostrar"</span>;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;">
openFile.Filter = <span style="color: #a31515;">"Todos(*.*)|*.*|Imagenes|*.jpg;*.gif;*.png;*.bmp"</span>;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;"> <span style="color: blue;">if</span> (openFile.ShowDialog() == <span style="color: blue;">true</span>)<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;"> {<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;"> <span style="color: blue;">if</span> (<span style="color: blue;">new</span> <span style="color: #2b91af;">FileInfo</span>(openFile.FileName).Length > 131072)<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;"> </span><span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;">{<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"> <span style="color: #2b91af;">MessageBox</span>.Show(<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"> <span style="color: #a31515;">"El
tamaño máximo permitido de la imagen es de 128 KB"</span>, <o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"> <span style="color: #a31515;">"Mensaje
de Sistema"</span>,<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"> <span style="color: #2b91af;">MessageBoxButton</span>.OK,<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"> </span><span lang="EN-US" style="color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;">MessageBoxImage</span><span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;">.Warning,<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;"> <span style="color: #2b91af;">MessageBoxResult</span>.OK);<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;"> <span style="color: blue;">return</span>;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;"> }<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;">
b.BeginInit();<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;">
b.UriSource = <span style="color: blue;">new</span> <span style="color: #2b91af;">Uri</span>(openFile.FileName);<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;">
b.EndInit();<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;">
imgFoto.Stretch = <span style="color: #2b91af;">Stretch</span>.Fill;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;">
imgFoto.Source = b; <o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;">
btnFoto.Content = <span style="color: #a31515;">"Quitar Foto"</span>;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;"> }<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;"> }<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;"> <span style="color: blue;">else</span><o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span lang="EN-US" style="font-family: Consolas; font-size: 9.5pt; mso-ansi-language: EN-US; mso-bidi-font-family: Consolas;"> </span><span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;">{<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"> imgFoto.Source = <span style="color: blue;">null</span>; <o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"> btnFoto.Content = <span style="color: #a31515;">"Agregar Foto"</span>;<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"> }<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<span style="font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;">}<o:p></o:p></span></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
En esta parte se
restringe el tamaño a 128 Kb, informando al usuario que no es posible cargar
imágenes mayores.<o:p></o:p></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
Bien, esta funcionalidad
es simple y básica, sin embargo, lo interesante será ver cómo utilizar esta
capacidad para almacenar el contenido de la imagen cuando se utiliza una clase
enlazada al control, esto es, tener un “Binding” hacia la propiedad source del
control, pero esto lo veremos en el siguiente artículo.<o:p></o:p></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
Espero que sea de
utilidad.<o:p></o:p></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
Saludos…<o:p></o:p></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
<br /></div>
<div class="MsoNormal" style="margin-bottom: 0.0001pt;">
Octavio Telis<span style="color: #2b91af; font-family: Consolas; font-size: 9.5pt; mso-bidi-font-family: Consolas;"><o:p></o:p></span></div>O-Telishttp://www.blogger.com/profile/02803576972553471618noreply@blogger.com