Como Usar el Clic Derecho en Silverlight para Mostrar Popup

Saludos Amig@s en este Articulo veremos como usar el clic derecho del Mouse usando Silverlight.
Bueno primero veamos que necesitamos de parte del codigo XAML.


<Grid x:Name="LayoutRoot" Background="Silver" MouseRightButtonDown="LayoutRoot_MouseRightButtonDown" MouseRightButtonUp="LayoutRoot_MouseRightButtonUp">
        <Popup Name="menu">
            <ListBox SelectionChanged="ListBox_SelectionChanged">
                <ListBoxItem Content="Item 1"></ListBoxItem>
                <ListBoxItem Content="Item 2"></ListBoxItem>
                <ListBoxItem Content="Item 3"></ListBoxItem>
                <ListBoxItem Content="Item 4"></ListBoxItem>
                <ListBoxItem Content="Item 5"></ListBoxItem>
            </ListBox>
        </Popup>
    </Grid>
Vemos que dentro del control Grid hay un elemento Popup el cual contiene un elemento ListBox,  en vez de este ListBox podemos poner cualquier tipo de Control, es totalmente personalizable, No es fantástico Silverlight!!!!
Para que se muestre el elemento del  Popup debemos crear 2 Eventos relacionados al Clic derecho,MouseRightButtonDown="LayoutRoot_MouseRightButtonDown" y MouseRightButtonUp="LayoutRoot_MouseRightButtonUp"

Veamos el Código que deberia ir en el Evento MouseRightButtonDown .

private void LayoutRoot_MouseRightButtonDown(object sender, MouseButtonEventArgs e)
 {
     e.Handled = true;
 }

Ahora vemos lo deberia contener el evento MouseRightButtonUp.

private void LayoutRoot_MouseRightButtonUp(object sender, MouseButtonEventArgs e)
  {
    Point punto = e.GetPosition(LayoutRoot);
    menu.Margin = new Thickness(punto.X, punto.Y,0,0);
    menu.IsOpen = true;
  }

Este código permite ya mostrar el Popup en la Cordenada X e Y capturados con el metodo GetPosition y creando un objeto Point.

Luego adicionalmente es importante que cuando se seleccione uno de los Items del Popup, se cierre este, es por ello la importancia de tener un evento en el ListBox SelectionChanged="ListBox_SelectionChanged"
el cual tendrá el siguiente codigo.


private void ListBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
  {
      menu.IsOpen = false;//Cerrar el Popup
      //Cualquier Codigo que necesites ejecutar
  }


Bueno el Resultado es de esperarse un lindo Popup, Gracias. HAZ CLIC DERECHO EN LA SECCION GRIS

Comments

Popular posts from this blog

Error al Iniciar Oracle SQL Developer 11g - Unable to find Java Virtual Machine

Como Mantener el Scroll despues de un PostBack ASP.net ( As Maintain Scroll after a PostBack ASP.net )

How to run ng serve in a different port
Como ejecutar ng serve en un puerto diferente