C # WPF - события Rectangle MouseEnter & MouseLeave не работают должным образом - PullRequest
0 голосов
/ 20 октября 2018

Я добавляю несколько прямоугольников к своему холсту WPF следующим образом:

Rectangle rectangle = new Rectangle
{
    Width = tuple.Width,
    Height = tuple.Height,
    Stroke = Brushes.Black,
    StrokeThickness = 1
};

rectangle.MouseEnter += (s, e) => rectangle.Stroke = Brushes.Gray;
rectangle.MouseLeave += (s, e) => rectangle.Stroke = Brushes.Black;

Canvas.SetLeft(rectangle, tuple.X);
Canvas.SetTop(rectangle, tuple.Y);
canvas.Children.Add(rectangle);

Что я ожидал:

  • Цвет границы прямоугольника, в который мышь вводит изменениядо серого, и он остается серым, пока мышь находится внутри области этого прямоугольника

Что на самом деле происходит:

  • Цвет границы меняется только на серый, еслимышь находится прямо на границе, но остается черной, если мышь находится где-либо еще (даже внутри прямоугольника).

Так почему же это так?Как я могу реализовать свое ожидаемое поведение?

1 Ответ

0 голосов
/ 20 октября 2018

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

Rectangle rectangle = new Rectangle
{
    Width = tuple.Width,
    Height = tuple.Height,
    Stroke = Brushes.DarkGray,
    StrokeThickness = 1,
    Fill = Brushes.Transparent
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...