Archivo de la categoría: 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

Fácil y rápida: Mover un rectángulo utilizando C# en una aplicación de Windows Store

Mi filosofía general del blog es que está perfectamente bien a blog sobre antiguo, se establecieron temas que han sido cubiertas hasta la muerte en otros lugares.  Supongo que este tema es uno de los, Pero estoy blogueando de todos modos.

He estado trabajando en una ventana de la aplicación de tienda y estoy en la parte donde tengo que hacer una animación.  Con este fin, He estado averiguando en pedacitos y pedazos de windows almacenan animación app que, como resulta, está muy cerca, Pero no exactamente como, Animaciones de XAML basado en .NET (Todavía voy a aceptar el hecho de WinRT <> .NET 🙂 ).

Esta mañana yo quería conseguir una manija en arrastrar y soltar las operaciones.  En el camino a, Quedé empantanado moviendo un rectángulo en su lugar :).  Aquí está el código que se mueve un rectángulo cuando el usuario hace clic en un botón:

   1:   
   2:              MatrixTransform ct = (MatrixTransform)rectBig.RenderTransform;
   3:              Matriz m = ct.Matriz;
   4:              m.OffsetX  = 10;
   5:              m.OffsetY  = 10;
   6:              CT.Matriz = m;
   7:              rectBig.RenderTransform = ct;

El truco aquí es que no puedo cambiar directamente OffsetX o OffsetY.  Puede haber una manera más inteligente de hacer esto (y si usted sabe y siente como, por favor lo publique en los comentarios). 

Para hacer esto, Necesito:

1. Conseguir la MatrixTransform del rectángulo (por fundición RenderTransform).

2. Obtener la matriz de ese tipo.

3. Cambiar las compensaciones de la matriz.

4. Reasignar la matriz a la MatrixTransform.

5. Reasignar el MatrixTransform volver al rectángulo.

Para probarlo, Puse un rectángulo y botón de la pantalla. Cuando hago clic con el botón, la lógica anterior se ejecuta y mueve el rectángulo inmediatamente.

En algún momento, Me gustaría animar a esto pero no tengo ni idea de cómo conseguir una DoubleAnimation para trabajar en él (Storyboard.SetTargetProperty() está siendo un misterio para mí en esto por el momento).

</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