none
¿Animaciones con validación en Blend? RRS feed

  • Pregunta

  • Necesito que con el evento MouseDown de un label:

    1er click --> Animación
    2do click--> Estado Original

    Intente hacer 2 veces el (mismo) desencadenador con el primero en Animacion.Begin y el segundo desencadenador con Animacion.Stop pero no funcionó,
    Gracias por la ayuda

    sábado, 27 de junio de 2009 22:38

Respuestas

  • Una posible solución para esto sería tener un ViewModel, y en este una variable Boolean que sirva como bandera, así utilizas un DataTrigger y cuando el valor sea true que inicie, en otro caso la detenga.

    Otra posible solución sería observar el evento PreviewMouseLeftButtonDown o MouseLeftButtonDown y hacer el "switch" dentro del EventHandler.

    Desde mi punto de vista, el problema que tienes esta con tu User Experience, dado que es poco común tener un comportamiento de ese estilo, donde una acción o evento te sirve para varias cosas. En una práctica de User Experience debe existir una diferenciación de eventos y de elementos que generan acciones. En ocasiones no gustamos de poner botones que digan, iniciar, terminar o algo así porque queremos una experiencia sin tanto botonazo, pero para tu usuario puede resultar terrible eso porque no sabe como interactuar con tu aplicación.

    Un ejemplo de una buena práctica de User Experience esta en los video juegos, digamos el Company Of Heroes, donde click izquierdo selecciona y click derecho ejecuta un comando básico, en tu caso debe existir un patrón similar.

    Saludos,


    Microsoft Certified Technology Specialist .NET 3.5 WPF Application Development
    Microsoft Certified Professional .NET Framework Application Development
    Profesionista Microsoft VIP México
    Blog Técnico
    World Wide Finalist Imagine Cup 2007
    Microsoft Student Partner
    C#, WPF, WCF
    LinkedIn
    domingo, 28 de junio de 2009 19:36

Todas las respuestas

  • Una posible solución para esto sería tener un ViewModel, y en este una variable Boolean que sirva como bandera, así utilizas un DataTrigger y cuando el valor sea true que inicie, en otro caso la detenga.

    Otra posible solución sería observar el evento PreviewMouseLeftButtonDown o MouseLeftButtonDown y hacer el "switch" dentro del EventHandler.

    Desde mi punto de vista, el problema que tienes esta con tu User Experience, dado que es poco común tener un comportamiento de ese estilo, donde una acción o evento te sirve para varias cosas. En una práctica de User Experience debe existir una diferenciación de eventos y de elementos que generan acciones. En ocasiones no gustamos de poner botones que digan, iniciar, terminar o algo así porque queremos una experiencia sin tanto botonazo, pero para tu usuario puede resultar terrible eso porque no sabe como interactuar con tu aplicación.

    Un ejemplo de una buena práctica de User Experience esta en los video juegos, digamos el Company Of Heroes, donde click izquierdo selecciona y click derecho ejecuta un comando básico, en tu caso debe existir un patrón similar.

    Saludos,


    Microsoft Certified Technology Specialist .NET 3.5 WPF Application Development
    Microsoft Certified Professional .NET Framework Application Development
    Profesionista Microsoft VIP México
    Blog Técnico
    World Wide Finalist Imagine Cup 2007
    Microsoft Student Partner
    C#, WPF, WCF
    LinkedIn
    domingo, 28 de junio de 2009 19:36
  • Como dice iRodfraga la unica manera es poner un flag que te indique si has desencadenado el primer click o no, lo puedes hacer lanzando la animación por código y capturando el evento Completed en ese momento pones la bandera y cuando pulse en el boton la compruebas y lanzas la segunda animcación capturando su Completed otra vez para incializar el flag.
    Por Triggers es imposible hacerlo.
    Tambien tiene razón que no es muy logico en diseño poner el mismo evento para el mismo objeto que realize dos cosas totalmente diferentes, deberias pensar como rediseñar la interación con el usuario.


    Oscar Avarez Guerras - Arquitecto Software en I3B (I+D+I) Blog:http://geeks.ms/blogs/oalvarez Por favor marca como respuesta si te ha ayudado esta respuesta
    lunes, 29 de junio de 2009 6:23