Operaciones básicas de programación con Metro y Windows 8 (VIII)
Trabajando con ficheros de recursos e idiomas
Trabajando con ficheros de recursos e idiomas (I)
Introducción
Cuando desarrollamos aplicaciones Software, es muy normal que nos veamos interesados o incluso obligados, a que nuestra aplicación sea multiidioma con el fin de que pueda ser utilizada por usuarios que hablen diferentes idiomas.
En la siguiente entrada, vamos a ver como desarrollar nuestra aplicación Metro con esta capacidad.
Iniciando nuestra aplicación
Vamos a crear una nueva aplicación Metro, tal y como hemos hecho en las anteriores entradas, con el nombre de Sample3.
Dentro de la página principal de nombre MainPage.xaml, vamos a insertar tres controles.
Un control TextBlock, un control TextBox, y un control Button.
La disposición de estos tres controles en la pantalla es la que se indica en la siguiente imagen.
El código XAML de nuestra página quedará entonces constituido de la siguiente manera:
1: <Page
2: x:Class="Sample3.MainPage"
3: IsTabStop="false"
4: xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
5: xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
6: xmlns:local="using:Sample3"
7: xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
8: xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
9: mc:Ignorable="d">
10:
11: <Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}">
12: <Canvas>
13: <TextBlock x:Name="tbNombre" Margin="140,120,0,0" Text="Nombre:" FontSize="18" />
14: <TextBox x:Name="txtNombre" Margin="220,120,0,0" Text="Escriba aquí su nombre" />
15: <Button x:Name="btnAceptar" Margin="140,180,0,0" Content="Aceptar" BorderThickness="1"
16: Click="btnAceptar_Click_1" />
17: </Canvas>
18: </Grid>
19:
20: </Page>
Lógicamente, en el control Button observamos que hemos indicado un evento.
El código de este evento en la página MainPage.xaml.cs quedará de la siguiente forma:
1: private void btnAceptar_Click_1(object sender, RoutedEventArgs e)
2: {
3: // Preparamos la caja de mensaje.
4: MessageDialog messageDialog = new MessageDialog(string.Format(
5: "Hola {0}",
6: this.txtNombre.Text));
7: // Mostramos la caja de mensaje.
8: messageDialog.ShowAsync();
9: } // btnAceptar_Click_1
Nuestra aplicación en ejecución es la que se indica en la siguiente imagen:
Como podemos apreciar, nada excepcional aún.
Ahora bien, supongamos que queremos que nuestros controles TextBlock y Button tengan un contenido diferente del que tenemos por defecto. ¿Cómo lo podemos hacer?.
Para eso está el fichero de recursos que veremos en la siguiente entrada de este pequeño tutorial.
(…Continúa…)