Добавить элементы управления в контекстное меню в WPF - PullRequest
1 голос
/ 24 августа 2011

Я хотел бы добавить контекстное меню для некоторых элементов управления в проекте WPF.Это само по себе достаточно просто.Мне было интересно, можно ли в них иметь элементы управления, такие как текстовое поле или средство выбора даты, так же, как в Access, когда щелкаешь по ячейке таблицы, где можно фильтровать по значению текстового поля.

Спасибо.

1 Ответ

2 голосов
/ 24 августа 2011

Вы можете поместить в ContextMenu все, что захотите, а не только MenuItems.Я никогда не думал об этом, но, думаю, вы могли бы использовать его как Popup, когда кто-то щелкнет по нему правой кнопкой мыши.Вы также можете добавлять события и т. Д.

<StackPanel>
    <StackPanel.Resources>
        <ContextMenu x:Key="myContextMenu">
            <StackPanel>
                <TextBox Text="Some Text.."/>
                <DatePicker/>
                <Button Content="Click Me" Click="Button_Click"/>
            </StackPanel>
        </ContextMenu>
    </StackPanel.Resources>
    <TextBox Text="Display some controls on right click"
             ContextMenu="{StaticResource myContextMenu}"/>
    <TextBox Text="Display some controls on right click"
             ContextMenu="{StaticResource myContextMenu}"/>
</StackPanel>

Получить нажатие UIElement в обработчике событий

private void Button_Click(object sender, RoutedEventArgs e)
{
    Button button = sender as Button;
    StackPanel stackPanel = button.Parent as StackPanel;
    ContextMenu contextMenu = stackPanel.Parent as ContextMenu;
    UIElement elementWithMenu = contextMenu.PlacementTarget;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...