在我的WPF的項目,我有我的XAML繪製一個橢圓,並添加一個MouseEnter事件給它的畫布: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的類,我在其中創建了一個橢圓,它具有對畫布的引用。
當我實例化一個新的頂點(以及一個橢圓)時,我將橢圓添加到畫布'children。將它添加到畫布前,我一個處理程序添加到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;
}
我預計這個工作,因爲它是一樣的第一個有效的例子。
但是,當我用鼠標輸入繪製的橢圓時,我的處理程序不是caleld。但是,當多次在橢圓上來回移動時,它最終會觸發橢圓並將其着色爲紅色。但是這隻發生在我繪製的許多橢圓之一上,這看起來也很奇怪。
什麼可能導致這種奇怪的行爲?