• vaya forma de perder el tiempo

     

    Pues eso… que el otro día instalé el Windows 8.1 Preview en mi netbook (Samsung N130) y normalmente entro en ese equipo de forma remota usando TeamViewer, y como no hago muchas cosas con el equipo, no me molesta que la resolución sea "escasa", ya que el tamaño de la pantalla no pasa de 1024×600, y es que resulta que el tamaño anteriormente conseguido (con Windows 8) era de 1024×768 en el cual te permitía ejecutar las aplicaciones de la pantalla de Inicio de Windows 8.

    Pero resulta que la aplicación que te permitía usar esa resolución extra (Easy Resolution Manager) ya no funciona en Windows 8.1.

    He probado con versiones diferentes y actualizadas, y nada de nada. Lo curioso es que al instalar el 8.1 lo único que me dijo es que tenía que desinstalar el Easy Display Manager, pero del Resolution no dijo ni mú… aunque no funciona.

    Y el TeamViewer, aunque en teoría te lo permite, lo de en teoría es porque ahí están las opciones, no puedes usar (o yo no he podido usar) otra resolución mayor, salvo cuando (curiosamente) estaba conectado con el Escritorio remoto.

     

    El caso es que me he conectado con el Escritorio Remoto y así usar otra resolución de pantalla. El problema con el que me he topado es que el teclado está configurado como teclado inglés y no hay forma de que utilice el español. En las opciones del teclado y de la configuración regional me dice que estoy usando el teclado español e incluso puedo alternar entre el teclado español y el inglés, pero las teclas siempre son las mismas. No hay forma de que use las del teclado español… 🙁

    He probado algunas cosas de cambio del registro, tal como se indica en [Soft – Windows XP] Idioma de teclado cambia en Conexión a Escritorio remoto en el que también está el enlace a la KB de Microsoft con más o menos la misma solución.

     

    A lo que iba… que llevo así (además de mientras tanto instalar otras cosas) más de dos horas (por no decir cuatro), porque ya casi he perdido la noción del tiempo… salvo porque en el reloj de Windows me dice que ya son las 01.21 y… pues eso…

    Bueno, creo que al final lo haré con el TeamViewer a pantalla completa o… ¡ya se me ocurrirá algo!

    Nota:
    Lo de pantalla completa con el TeamViewer no vale, ya que utiliza la misma resolución (1024×600) pero ocupando todo el monitor… 🙁

    Por si te quedan dudas, tengo otras conexiones por medio de escritorio remoto y el teclado está correcto, es decir, que no es cosa de la versión del programa u otra cosa rara… ¡espero!

    Bueno, voy a comer algo y después ya veremos… y si encuentro la solución… te la contaré…

     

    Ya funciona (o casi) (02.44)

    No sé cómo lo he hecho, pero… al menos funciona, eso sí, hay que estar atento…

    Resulta que "trasteando" en los teclados/idiomas, me he topado con que en el idioma inglés, tengo tres teclados (ver la figura 1), y si elijo la del teclado español funciona bien.

    teclado en N130
    Figura 1. Las opciones del teclado inglés

    Lo curioso es que si en lugar de elegir el teclado inglés (EN), usando el valor general, no el que se muestra en el menú contextual, elijo el español (ES) sigue sin salir bien… al menos desde el terminal server / escritorio remoto.

    Bueno, algo es algo… :-/

     

     

    Nos vemos.
    Guillermo

    …

  • Cómo usar el FileOpenPicker para seleccionar ficheros en las apps de Windows Store

     

    Pues eso… ahora le toca el turno al FileOpenPicker el "seleccionador" de ficheros en las aplicaciones de la Tienda de Windows.

    En las aplicaciones para la Tienda de Windows (Windows Store) esta es la única forma (que yo conozco) de acceder a una carpeta local (o de la red o de un disco extraíble o de un sistema de almacenamiento como Skydrive) y seleccionar un fichero.

    Aunque antes hay que indicarle a la aplicación de que queremos acceder a esos sitios, para ello tendremos que abrir el fichero de manifiesto de la aplicación (Package.appxmanifest) y en la ficha Capabilities (ver figura 1) indicar que queremos utilizar el Private Networks y Removable Storage (por si queremos acceder a un disco externo/conectado por USB).

     

    FileOpenPicker 02
    Figura 1. Indicar las "Capabilities" de la aplicación

     

    Lo siguiente que tenemos que hacer es indicar en la ficha Declarations que queremos usar el File Open Picker.

     

    FileOpenPicker 03
    Figura 2. En Declarations indicamos que queremos usar el File Open Picker

     

    Tal como vemos en la figura 2 tenemos que indicar al menos un tipo de fichero (Supported file type) aunque no tiene porqué ser el mismo tipo que vamos a usar, en este ejemplo he indicado ".xml" y casualmente voy a buscar ese tipo de fichero, pero como veremos en el código, también voy a indicar que me muestre los que tengan la extensión .txt (además de los .xml).

    La forma de usar ese control es desde dentro de un método asíncrono (async) ya que las llamadas a los métodos para acceder al fichero son llamadas asíncronas.

    En el siguiente código vemos lo que necesitamos para usar esa clase. Dependiendo del tipo de ficheros a los que queramos acceder así lo indicaremos en la colección FileTypeFilter, en este ejemplo he añadido dos tipos: .xml y .txt, pero si quisiéramos acceder a todos los tipos, habría que indicar el asterisco (*), en el ejemplo el asterisco está comentado, pero si quieres hacer pruebas, quita el comentario.

    Este es el código de Visual Basic, el de C# está más abajo.

    Dim openPicker As New FileOpenPicker()
    openPicker.FileTypeFilter.Add(".xml")
    openPicker.FileTypeFilter.Add(".txt")
    'openPicker.FileTypeFilter.Add("*")
    openPicker.SuggestedStartLocation = PickerLocationId.DocumentsLibrary
    openPicker.ViewMode = PickerViewMode.List
    Dim cfgFile As StorageFile = Await openPicker.PickSingleFileAsync()
    
    If cfgFile Is Nothing Then Exit Sub
    
    Dim sr = New StreamReader(Await cfgFile.OpenStreamForReadAsync)
    
    

     

    Utilizando ese código podremos ver algo como la captura de la figura 3.

    FileOpenPicker 01

    Figura 3. El FileOpenPicker en acción

     

    Y esto es prácticamente todo… aquí te dejo el código de ejemplo de C# para que no te quejes si prefieres los puntos y comas 😉

    FileOpenPicker openPicker = new FileOpenPicker();
    openPicker.FileTypeFilter.Add(".xml");
    openPicker.FileTypeFilter.Add("*");
    openPicker.SuggestedStartLocation = PickerLocationId.DocumentsLibrary;
    openPicker.ViewMode = PickerViewMode.List;
    StorageFile cfgFile = await openPicker.PickSingleFileAsync();
    
    if (cfgFile == null) return;
    
    var sr = new StreamReader(await cfgFile.OpenStreamForReadAsync());
    

     

    Comentarte que la clase FileOpenPicker está definida en Windows.Storage.Pickers y la clase StorageFile está definida en Windows.Storage.

    Y esto ya si que es todo…

    Nos vemos.

    Guillermo

    …

  • Dónde poner el ScrollViewer para poder hacer scroll (app para Windows Store)

     

    Pues eso… que siempre me lío y no me aclaro nunca dónde tengo que poner el "dichoso" control ScrollViewer para poder hacer scroll al contenido… ahora que lo escribo tiene su lógica… es decir, si hago la pregunta: ¿dónde lo pongo para poder hacer scroll al contenido? La respuesta es: el ScrollViewer fuera, y dentro del control pondremos lo que haya que hacer scroll… si es que… :-/

    Así que, ya sabes… defines el control ScrollViewer y dentro del control pones la caja de texto o lo que sea, y a eso es a lo que podrás hacer scroll (desplazamiento).

    Por ejemplo, en el siguiente código XAML tenemos un ScrollViewer que está dentro de un Grid y que contiene una caja de texto (TextBlock) y al contenido de esa caja de textos es a lo que quiero poder hacer scroll. Ese TextBlock está a su vez dentro del un StackPanel, con idea de que ahí puedas meter más cosas y todas esas cosas estarán controladas por el control  de scroll. En este código de ejemplo también hay un botón que estará debajo de la caja de texto.

    <ScrollViewer ScrollViewer.VerticalScrollBarVisibility="Visible">
        <StackPanel Margin="10" 
                    HorizontalAlignment="Center" 
                    VerticalAlignment="Center">
            <TextBlock x:Name="txtDatos" TextWrapping="Wrap" 
                       FontSize="16" FontWeight="SemiBold"
                       Text="El contenido del fichero"
                       MinWidth="800" MinHeight="600" />
            <Button Content="Leer un fichero" Margin="0,10,0,0"
                    Click="Button_Click" />
        </StackPanel>
    </ScrollViewer>
    

    En esta captura puedes ver (por decir algo) cómo queda esto al funcionar en el emulador:

    scrollviewer

    Y ya está. Esto es todo amigos…

     

    Nos vemos.

    Guillermo

    …