хм, я попробовал твой код, и он работает для меня.Но позвольте мне сказать, что это «в корне очень неправильно».
Прежде всего, мы обычно не делаем эти события на границе, так как обычно это тонкий элемент, и вы можете пропустить это событие, если вы двигаетесьваша мышь слишком быстрая, и в целом вы должны быть точны с ней.Лучше делать событие с тем, что находится внутри границы.
Во-вторых, как должен вызываться метод MouseLeave, если указатель мыши делает границу скрытой ?!он больше не появляется!
было бы разумнее, если бы щелкнуть по кнопке, чтобы снова появилась граница.попробуйте это:
<Grid>
<Canvas Name="canvas1" >
<Button Width="100" Content="button" Height="100" Name="button1" Visibility="Hidden" Click="button1_Click" />
<Border BorderBrush="Red" BorderThickness="6" Name="border1" Canvas.Left="194" Canvas.Top="22" Height="78" Width="111" MouseEnter="border1_MouseEnter" />
</Canvas>
</Grid>
void border1_MouseEnter(object sender, MouseEventArgs e)
{
border1.Visibility = Visibility.Hidden;
button1.Visibility = Visibility.Visible;
}
private void button1_Click(object sender, RoutedEventArgs e)
{
border1.Visibility = System.Windows.Visibility.Visible;
button1.Visibility = System.Windows.Visibility.Hidden;
}