Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > WPF и Silverlight > MenuItem.Click bubble event


Автор: Remember 16.8.2009, 16:26
Вообще ситуация такая: есть форма на которой расположен Кнопка в которой расположено контексное меню. Необходимо поднять события щелчка мыши по контексному меню до Grid расположенному на форме, но этого сделать никак не удается.
Код

<Window x:Class="EventsTest.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Window1" Height="416" Width="508" Closing="Window_Closing" MouseLeftButtonDown="MenuItem_Click">
    <Grid MouseLeftButtonDown="MenuItem_Click">
        <Grid.RowDefinitions>
            <RowDefinition></RowDefinition>
            <RowDefinition></RowDefinition>
            <RowDefinition></RowDefinition>
        </Grid.RowDefinitions>
        <Button Grid.Row="1" MouseLeftButtonDown="MenuItem_Click">
            <Button.ContextMenu>
                <ContextMenu>
                    <MenuItem Header="Первая" MouseLeftButtonDown="MenuItem_Click" />
                    <MenuItem Header="Вторая"></MenuItem>
                </ContextMenu>
            </Button.ContextMenu>
            Test RoutedEventArgs
        </Button>
        <TextBlock Grid.Row="2" HorizontalAlignment="Center" VerticalAlignment="Center" MouseLeftButtonDown="MenuItem_MouseDown">АВАВ</TextBlock>
    </Grid>
</Window>
Код

        private void MenuItem_Click(object sender, RoutedEventArgs e)
        {
            wn.Show();
            wn.listBox1.Items.Add(sender.ToString());
        }


Если кликать на TextBlock все работает, а тут мало того что событие не поднимается, так оно ещё и не срабатывает. Click работает, но подниматься не хочет. Пробовал добавлять в разметку MenuItem.Click результата ноль.

Может кто чем поможет...

P.S. Попробуйте откомпилировать у себя в VS.. слышал что это может быть зависимо от версии..
wn - форма с listBox куда я вывожу контрол, который обрабатывает событие.

Автор: chlp 16.8.2009, 21:50
Это потому, что у Button MouseLeftButtonDown не обрабатывается, хотя существует из-за наследования

Автор: Remember 17.8.2009, 04:01
Ясно, а тогда как мне поднять события щелчка по контексному меню до окна содержащего кнопку с этим меню?

Автор: Remember 21.8.2009, 23:58
Народ, ау!!
Я никак не могу найти ответа на поставленный вопрос.
Как поднять события от контексного меню привязанного к кнопке до окна родителя?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)