В моем проекте WPF у меня есть холст, на котором я рисую эллипс в XAML и добавляю к нему событие MouseEnter:
<Canvas Width="600" Height="480" Name="canvas1" HorizontalAlignment="Left">
<Ellipse Height="20" Width="20" Canvas.Left="50" Canvas.Top="50" Fill="blue" Name="ellipse1" Mouse.MouseEnter="ellipse1_MouseEnter" MouseLeave ="ellipse1_MouseLeave"/>
</Canvas>
В коде ниже я получил этот код:
private void ellipse1_MouseEnter(object sender, MouseEventArgs e)
{
ellipse1.Fill = Brushes.Red;
}
Когда я вхожу в эллипс с помощью мыши, он становится красным, как и ожидалось.
У меня также есть код для рисования эллипса на холсте, где я щелкаю мышью.У меня есть класс с именем Vertex, в котором я создаю эллипс, который имеет ссылку на холст.
Когда я создаю новую вершину (и, следовательно, эллипс), я добавляю эллипс к дочерним элементам холста.Прежде чем добавить его на холст, я добавляю обработчик к событию MouseEnter:
MyEllipse.MouseEnter += new System.Windows.Input.MouseEventHandler(MyEllipse_MouseEnter);
Обработчик «MyEllipse_MouseEnter» выглядит следующим образом:
private void MyEllipse_MouseEnter(object sender, System.Windows.Input.MouseEventArgs e)
{
this.MyEllipse.Fill = Brushes.Red;
}
Я ожидал, что это сработаеттак же, как первый пример, который работает.
Однако, когда я вхожу в нарисованный эллипс с помощью мыши, мой обработчик не вызывается.НО, если многократно перемещаться по эллипсу, он в конечном итоге сработает и покрасит эллипс в красный цвет.Но это происходит только на одном из множества нарисованных мною эллипсов, что также кажется очень странным.
Что может быть причиной такого странного поведения?