2010-04-27 6 views
0

Я пытаюсь, чтобы WPF ViewBox «появлялся» в позиции курсора в пользовательском элементе управления, когда пользователь щелкает правой кнопкой мыши на элементе управления. Прямо сейчас, у меня есть код:WPF: Показать панель в правой части экрана.

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

и

/* 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(); 
} 

Событие действительно уволят, но ничего не кажется, происходит. (MouseRightButtonDown="..." находится в другой части файла XAML.)

Как можно написать это в WPF?

ответ

2

Посмотрите на контекстное меню.

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

        <MenuItem Header="Item ▼"/> 

        <MenuItem Header="Permute ▼"/> 

        <MenuItem Header="Generate ▼"/> 

</ContextMenu> 

Вы также можете связать команды с элементами меню, а также создать подменю.

Fore больше информации:

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

+0

Спасибо. Я искал несколько иной пользовательский интерфейс, но это, пожалуй, самый простой способ сделать это! –

+0

приветствую :) – Archie

Смежные вопросы