2010-04-27 3 views
0

J'essaie d'afficher un WPF ViewBox à la position du curseur dans un contrôle utilisateur lorsque l'utilisateur clique avec le bouton droit sur le contrôle. En ce moment, j'ai le code:WPF: Afficher le panneau en cliquant avec le bouton droit sur

<!-- XAML --> 
<Viewbox Width="100" Visibility="Collapsed" x:Name="actionBox"> 
    <StackPanel Orientation="Horizontal" HorizontalAlignment="Stretch"> 
     <Button>Item ▼</Button> 
     <Button>Permute ▼</Button> 
     <Button>Generate ▼</Button> 
    </StackPanel> 
</Viewbox> 

et

/* C# */ 
private void setPanel_MouseRightButtonDown(object sender, MouseButtonEventArgs e) 
{ 
    Point p = e.GetPosition(this); 
    actionBox.Margin = new Thickness(p.X, p.Y, 0, 0); 
    actionBox.Visibility = System.Windows.Visibility.Visible; 
    actionBox.BringIntoView(); 
} 

L'événement ne faire virer, mais rien ne semble se passer. (Le MouseRightButtonDown="..." se trouve dans une partie différente du fichier XAML.)

Comment l'écrire dans WPF?

Répondre

2

Jetez un coup d'œil au menu contextuel.

<ContextMenu Name="cm" StaysOpen="true"> 

        <MenuItem Header="Item ▼"/> 

        <MenuItem Header="Permute ▼"/> 

        <MenuItem Header="Generate ▼"/> 

</ContextMenu> 

Vous pouvez même lier les commandes avec les éléments de menu et créer des sous-menus.

Pour plus d'information:

http://www.a2zdotnet.com/View.aspx?id=92

+0

Merci. Je cherchais une interface légèrement différente, mais cela semble être la façon la plus simple de le faire! –

+0

vous êtes les bienvenus :) – Archie

Questions connexes