Модераторы: gambit, Kefir, Partizan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Маршрутизируемые события 
:(
    Опции темы
wachburn
Дата 17.12.2010, 13:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 13.3.2010

Репутация: нет
Всего: нет



Почему при клике на эллипсе outerEllipse после обработки события PreviewMouseDown не срабатывают остальные обработчики ? Но если убрать мессаджбоксы, то они срабатывают

Код
    <StackPanel>
        <Button Name="btnClickMe" Height="75" Width = "250" Click ="btnClickMe_Clicked" >
            <StackPanel Orientation ="Horizontal">
                <Label Height="50" FontSize ="20">Fancy Button!</Label>
                <Canvas Height ="50" Width ="100" >
                    <Ellipse Name = "outerEllipse" Fill ="Green" Height ="25" Width ="50" Cursor="Hand" Canvas.Left="25" Canvas.Top="12" MouseDown="outerEllipse_MouseDown" PreviewMouseDown="outerEllipse_PreviewMouseDown"/>
                    <Ellipse Name = "innerEllipse" Fill ="Yellow" Height = "15" Width ="36" Canvas.Top="17" Canvas.Left="32"/>
                </Canvas>
            </StackPanel>
        </Button>
    </StackPanel>



Код
    public partial class WindowsApplication : Window
    {
        string data = string.Empty;
        public WindowsApplication()
        {
            InitializeComponent();
        }


        private void btnClickMe_Clicked(object sender, RoutedEventArgs e)
        {
            data += "Button Clicked\n";
            MessageBox.Show(data);
            data = string.Empty;
        }

        private void outerEllipse_MouseDown(object sender, MouseButtonEventArgs e)
        {
            data += "Outer MouseDown\n";
            MessageBox.Show(data);
            e.Handled = false;
           
        }

        private void outerEllipse_PreviewMouseDown(object sender, MouseButtonEventArgs e)
        {
            data += "Outer PreviewMouseDown\n";
            MessageBox.Show(data);
            e.Handled = false; 
        }
    }

PM MAIL   Вверх
gambit
Дата 17.12.2010, 14:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***
Награды: 1



Профиль
Группа: Комодератор
Сообщений: 1359
Регистрация: 25.6.2006
Где: я?

Репутация: нет
Всего: 40



а может стоит попробовать не трогать хэндл??
PM MAIL ICQ Skype   Вверх
SergeyLoginov
Дата 17.12.2010, 16:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 62
Регистрация: 28.9.2009
Где: Иваново

Репутация: 4
Всего: 4



Судя по всему обработка маршрутизируемого события прерывается при открытии диалога.  Наверняка где-то внутрях при открытии диалога Handled события MouseDown устанавливается в true. Думаю, что как раз e.Handled трогать и надо. Попробуй навесить событие другим способом (в коде):
Код

outerEllipse.AddHandler(MouseDownEvent, new MouseButtonEventHandler(outerEllipse_MouseDown), true);

Последний аргумент этого метода (UIElement.AddHandler) позволяет обрабатывать события вне зависимости от значения e.Handled.
PM MAIL   Вверх
gambit
Дата 17.12.2010, 17:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***
Награды: 1



Профиль
Группа: Комодератор
Сообщений: 1359
Регистрация: 25.6.2006
Где: я?

Репутация: нет
Всего: 40



Нет, в MessageBox.Show() хэндл не трогается, сейчас попробовал, событие по дереву прошло
PM MAIL ICQ Skype   Вверх
wachburn
Дата 17.12.2010, 22:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 13.3.2010

Репутация: нет
Всего: нет



Цитата(gambit @ 17.12.2010,  17:11)
сейчас попробовал, событие по дереву прошло

как пошло? у тебя outerEllipse_MouseDown сработал?

Цитата(SergeyLoginov @  17.12.2010,  16:15 Найти цитируемый пост)
SergeyLoginov

Подрубил так как ты сказал, все равно не работает
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | WPF и Silverlight | Следующая тема »


 




[ Время генерации скрипта: 0.0427 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.