none
Cambiar posicion canvas WPF RRS feed

  • Pregunta

  • Hola muchachos, lo que necesito es, tengo una botonera (StackPanel) que contiene botones (button). Ahora cada boton despliega una lista dinamica de opciones, dicha lista es unica, por lo tanto por cada click en el boton se ubica dinamicamente teniendo en cuenta las posiciones del boton clickeado. El problema esta en que no puedo ubicarla en cada posicion de cada boton, obtengo el Point del boton, pero no se como decirle a la lista (Canvas) que se ubique en dicho Point. 

    muchas gracias

    lunes, 14 de junio de 2010 13:42

Todas las respuestas

  • encontre algo, no se si es lo mejor:

    'Obtengo la ubicacion del boton
    Dim Ubicacion As Point = Item.TransformToAncestor(CType(Layout, UIElement)).Transform(New Point(0, 0))
    
    'Cambio la ubicacion de la lista    
    SubMenu.RenderTransform = New TranslateTransform(Ubicacion.X, Ubicacion.Y)

    esto hace lo que necesito, pero no se si es la manera.. 

     

    lunes, 14 de junio de 2010 14:35
  • Hola SamArg.

    ¿los botones estan dentro de un stackPanel, y este StackPanel es el principal?

    ¿La lista es un Canvas por algo en concreto?

    Dependiendo de los contenedores lo puedes hacer de una forma u otra, pero la que has expuesto tu, si te sirve para el arbol WPF que tienes montado esta bien. Si el Submenu es unico, se puede modificar su posicion mediante transformaciones, la multiplicacion de matrices bidimensionales no tiene un coste elevado y al fin y al cabo es lo que se usa para modificaciones relativas.

    Si te funciona asi, no es una mala opcion.


    Saludos
    David González
    lunes, 14 de junio de 2010 16:12