Archivo de la etiqueta: Windows Store

Fácil y rápida: Definir el tamaño de un elementos en un cuadro de lista en una aplicación de Windows Store

Estoy creando en un Windows App Store, Quiero mostrar al usuario diversos mensajes informativos.  Elegí un ListBox como la herramienta para mostrar así pueden desplazarse por ellas y las buenas cosas. 

Los mensajes son sólo informativos, Así que no hay necesidad para proporcionar espacios todo alrededor de ellos puesto que el usuario nunca puede seleccionarlos para nada.  El comportamiento predeterminado del cuadro de lista proporciona una cantidad sustancial de relleno y que quería deshacerse de él.  Bueno.... No puedes hacer a ese tipo de cosas en el cuadro de lista directamente.  SIN EMBARGO, Puedes hacerlo para agregar los elementos:

        privada void AddGameStateLogMessage(cadena Mensaje)
        {
            TextBox t = Nuevo Cuadro de texto();
            t.Text = GameStateCounter    + ": " + Mensaje;
            t.TextWrapping = TextWrapping.Wrap;
            t.MinWidth = 400;
            Grueso thisPadding = Nuevo Grueso(5, 0, 5, 0);
            t.Padding = thisPadding;
            t.FontSize = 12;

            ListBoxItem li = Nuevo ListBoxItem();
            Li.Contenido = t;
            Li.MaxHeight = 25;
            thisPadding = Nuevo Grueso(5, 0, 5, 0);
            Li.Relleno = thisPadding;

            GameStateLog.Items.Insert(0,Li);
        }

en el anterior, Estoy creando un cuadro de texto y establecer su fuente, su relleno, etc..

Siguiente, Crear un ListBoxItem y establece su contenido en el cuadro de texto con formato.

Finalmente, El ListBoxItem se coloca en el cuadro de lista.  (Quiero mostrar los mensajes más recientes en la parte superior de la lista, por lo tanto, la inserción(0,Li) en lugar de un simple complemento() invocación.).

Va estar afinando esta un poco antes de que estoy muy contento con el comportamiento de ListBox pero el patrón mostrado arriba ha sido muy fructífero.  Espero que alguien lo encuentra útil.

</final>

undefinedSuscribirse a mi blog.

Sígueme en Twitter en http://www.twitter.com/pagalvin

Ajuste la altura de ListboxItems en un cuadro de lista mediante programación para App Store de Windows

Estoy trabajando en una tienda de aplicación para windows y una de las cosas que quiero hacer en la app es un registro que muestra mensajes de estado y otros datos informativos como el usuario trabaja cosas. Con este fin, He añadido un control ListBox como sigue:

<ListBox x:Nombre ="GameStateLog" HorizontalAlignment ="Centro" Altura ="221" VerticalAlignment ="Arriba" Ancho ="499" Relleno ="0" FontSize ="10">

 

El código de C# para rellenar el cuadro de lista en tiempo de ejecución fue a lo largo de las líneas de:

GameStateLog.Items.Insert(0, GameStateCounter    + ": Nuevo juego estado: a la espera de jugador 1 nombre");

Esto funcionó bien bastante pero la interfaz de usuario demostraron una cantidad loca de relleno alrededor de los mensajes individuales como se agregaron. Tiene sentido si desea que los usuarios finales sean capaces de seleccionar estos elementos, pero no tiene sentido cuando sólo quiero mostrar una serie corriente de mensajes de registro, los usuarios no seleccionan estas, solo verlos. Era extrañamente difícil de encontrar una manera fácil de hacerlo y posiblemente, lo que encontré no es necesariamente "fácil", pero lo conseguí trabajando OK. La idea clave vino de esta publicación aquí (http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/c4a6f694-bd46-4779-ab83-b1c2fcb2397c) de Bob Relyea. En lugar de agregar cadenas a la colección de Items en el ListBox, Añadir ListBoxItems. Mediante la adición de una cadena, el cuadro de lista estaba creando su propio ListBoxItem en su propio. Yo no era capaz de cualquier cosa sobre eso ListBoxItem afectan después del hecho. El nuevo código es:

        privada void AddGameStateLogMessage(cadena Mensaje)
        {
            ListBoxItem li = Nuevo ListBoxItem();
            Li.Contenido = mensaje;
            Li.MaxHeight = 25;

            Grueso thisPadding = Nuevo Grueso(5, 0, 5, 0);
            Li.Relleno = thisPadding;

            GameStateLog.Items.Insert(0,Li);
        }

 

Aquí estoy creando de ListBoxItem e insertándolos. Quité el exceso de almohadillado estableciendo su grosor.

Es muy flexible ya que pretendo hacer un poco de color para resaltar determinados tipos de mensajes de codificación y añadiendo directamente ListBoxItems consigo los estilo de ninguna manera que quiero.

Espero que esto ayude a alguien!

</final>

undefinedSuscribirse a mi blog.

Sígueme en Twitter en http://www.twitter.com/pagalvin