WPF: задание области действия MouseEnter
От: Аноним  
Дата: 29.09.10 14:05
Оценка:
Предположим есть квадратный UserControl, в нём нарисован кружок. Как добиться того чтобы при наведении курсора на этот кружок отправлялось событие мне?

Я задавал UserControl.Clip по форме кружка, но потом обратил внимание что и всё окружающее его содержимое контрола не отрисовывается.
Re: WPF: задание области действия MouseEnter
От: Аноним  
Дата: 30.09.10 04:57
Оценка: -1
Здравствуйте, Аноним, Вы писали:

А>Предположим есть квадратный UserControl, в нём нарисован кружок. Как добиться того чтобы при наведении курсора на этот кружок отправлялось событие мне?


А>Я задавал UserControl.Clip по форме кружка, но потом обратил внимание что и всё окружающее его содержимое контрола не отрисовывается.


Требую немедленно мне ответить! Иначе
Re: WPF: задание области действия MouseEnter
От: Codechanger Россия  
Дата: 30.09.10 05:35
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Предположим есть квадратный UserControl, в нём нарисован кружок. Как добиться того чтобы при наведении курсора на этот кружок отправлялось событие мне?


А>Я задавал UserControl.Clip по форме кружка, но потом обратил внимание что и всё окружающее его содержимое контрола не отрисовывается.


Код в студию, тут не телепаты, знаете ли
Re[2]: WPF: задание области действия MouseEnter
От: Аноним  
Дата: 30.09.10 05:39
Оценка:
Здравствуйте, Codechanger, Вы писали:

C>Здравствуйте, Аноним, Вы писали:


А>>Предположим есть квадратный UserControl, в нём нарисован кружок. Как добиться того чтобы при наведении курсора на этот кружок отправлялось событие мне?


А>>Я задавал UserControl.Clip по форме кружка, но потом обратил внимание что и всё окружающее его содержимое контрола не отрисовывается.


C>Код в студию, тут не телепаты, знаете ли


Кода-то..

class Canv : Canvas
        {
            public Point pt = new Point(30, 16);

            protected override void OnRender(DrawingContext dc)
            {
                Pen p = new Pen() { Thickness = 1, Brush = Brushes.Beige };
                dc.DrawEllipse(Brushes.Beige, p, pt, 2, 2);

//                Clip = new EllipseGeometry(pt, 2, 2);
            }
        }


Может быть мне оверайдить OnPreviewMouseMove для этого?
Re[3]: WPF: задание области действия MouseEnter
От: MxMsk Португалия  
Дата: 30.09.10 06:35
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Кода-то..

Код, конечно, доставляет: легкий Point выделен в поле класса, а вот Pen, унаследованный от Freezable, создается при каждом вызове OnRender...
Ну да ладно, чем не устраивает событие MouseEnter.
Re[4]: WPF: задание области действия MouseEnter
От: Аноним  
Дата: 30.09.10 06:41
Оценка:
Здравствуйте, MxMsk, Вы писали:

MM>Здравствуйте, Аноним, Вы писали:


А>>Кода-то..

MM>Код, конечно, доставляет: легкий Point выделен в поле класса, а вот Pen, унаследованный от Freezable, создается при каждом вызове OnRender...
MM>Ну да ладно, чем не устраивает событие MouseEnter.

Мне надо чтобы MouseEnter всплывало только когда курсор попадает в кружок, а не в контрол вообще.
Re[5]: WPF: задание области действия MouseEnter
От: MxMsk Португалия  
Дата: 30.09.10 06:56
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Мне надо чтобы MouseEnter всплывало только когда курсор попадает в кружок, а не в контрол вообще.

Приведенный код так и работает. Либо код не соответствует сабжу, либо одно из двух
Re[6]: WPF: задание области действия MouseEnter
От: Аноним  
Дата: 30.09.10 07:06
Оценка:
Здравствуйте, MxMsk, Вы писали:

MM>Здравствуйте, Аноним, Вы писали:


А>>Мне надо чтобы MouseEnter всплывало только когда курсор попадает в кружок, а не в контрол вообще.

MM>Приведенный код так и работает. Либо код не соответствует сабжу, либо одно из двух

«Приккольно»..

Ок. Теперь усложняю задачу, у меня в контроле два кружка, хочу чтоб MouseEnter всплывало при попадании курсора только в кружок номер 1.
Re[7]: WPF: задание области действия MouseEnter
От: MxMsk Португалия  
Дата: 30.09.10 07:13
Оценка: :)
Здравствуйте, Аноним, Вы писали:

А>Ок. Теперь усложняю задачу, у меня в контроле два кружка, хочу чтоб MouseEnter всплывало при попадании курсора только в кружок номер 1.

Это что — викторина? Каков джекпот?
Re[8]: WPF: задание области действия MouseEnter
От: Аноним  
Дата: 30.09.10 07:30
Оценка: -1
Здравствуйте, MxMsk, Вы писали:

MM>Здравствуйте, Аноним, Вы писали:


А>>Ок. Теперь усложняю задачу, у меня в контроле два кружка, хочу чтоб MouseEnter всплывало при попадании курсора только в кружок номер 1.

MM>Это что — викторина? Каков джекпот?

Слющай, зачем мишаишь? Есть что сказать — скажи, а нет — нет.
Re[7]: WPF: задание области действия MouseEnter
От: toulon Россия  
Дата: 30.09.10 13:12
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, MxMsk, Вы писали:


MM>>Здравствуйте, Аноним, Вы писали:


А>>>Мне надо чтобы MouseEnter всплывало только когда курсор попадает в кружок, а не в контрол вообще.

MM>>Приведенный код так и работает. Либо код не соответствует сабжу, либо одно из двух

А>«Приккольно»..


А>Ок. Теперь усложняю задачу, у меня в контроле два кружка, хочу чтоб MouseEnter всплывало при попадании курсора только в кружок номер 1.


обрабатывайте MouseEnter только от кружка номер 1
в чем проблема то?
Re: WPF: задание области действия MouseEnter
От: vit_as Россия  
Дата: 01.10.10 06:25
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Предположим есть квадратный UserControl, в нём нарисован кружок. Как добиться того чтобы при наведении курсора на этот кружок отправлялось событие мне?


А>Я задавал UserControl.Clip по форме кружка, но потом обратил внимание что и всё окружающее его содержимое контрола не отрисовывается.



Можно у UserControl'a переопределить функцию HitTestCore
Re[8]: WPF: задание области действия MouseEnter
От: Аноним  
Дата: 01.10.10 07:00
Оценка:
Здравствуйте, toulon, Вы писали:

T>Здравствуйте, Аноним, Вы писали:


А>>Здравствуйте, MxMsk, Вы писали:


MM>>>Здравствуйте, Аноним, Вы писали:


А>>>>Мне надо чтобы MouseEnter всплывало только когда курсор попадает в кружок, а не в контрол вообще.

MM>>>Приведенный код так и работает. Либо код не соответствует сабжу, либо одно из двух

А>>«Приккольно»..


А>>Ок. Теперь усложняю задачу, у меня в контроле два кружка, хочу чтоб MouseEnter всплывало при попадании курсора только в кружок номер 1.


T>обрабатывайте MouseEnter только от кружка номер 1

T>в чем проблема то?

Так я не знаю как.. То есть сейчас я нашел один способ — кружок1.AddHandler(UIElement.MouseEnterEvent,.., но с интересом выслушал бы про другие и про их различия.
Re[9]: WPF: задание области действия MouseEnter
От: 3epo4 Россия  
Дата: 06.10.10 09:38
Оценка:
А>Так я не знаю как.. То есть сейчас я нашел один способ — кружок1.AddHandler(UIElement.MouseEnterEvent,.., но с интересом выслушал бы про другие и про их различия.

Если кружочков немного, то можно попробовать так:

<Canvas>
  <Ellipse ... Canvas.Top=".." Canvas.Left=".." MouseEnter="..."/>
</Canvas>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.