WPF: Canvas Z-Index Bug - PullRequest
       48

WPF: Canvas Z-Index Bug

2 голосов
/ 13 апреля 2009

Итак, я сделал свой собственный контроль карусели в WPF. Я наткнулся на ошибку и хотел знать, знает ли кто-нибудь, как я могу это исправить, например, вызов метода или серия вызовов методов или какой-то обходной путь. Вот распечатка моей карусели:

Карусель Изображение http://img4.imageshack.us/img4/9599/carousele.jpg

Как вы можете ЯСНО увидеть на этом изображении, мой указатель мыши над кнопкой с надписью 16. Но кнопка с надписью 18 - это та, которая синего цвета, как будто моя мышь была над этой кнопкой. Я также устанавливаю подсказку, которая будет привязана к содержимому, и подсказка говорит, что моя мышь находится над кнопкой с 18 одним. Это должно быть ПРАВИЛЬНОЕ поведение, так как 18 - значение z-index кнопок. Таким образом, кнопка с 18 на ней должна быть на вершине кнопки с 16 на ней. Однако WPF не отображал холст таким образом, и мне было интересно, как это преодолеть. Я пробовал canvas.InvalidateArranage (), canvas.invalidateVisual (), canvas.UpdateLayout (), но мне не повезло. Левая сторона холста показывает, как он должен выглядеть, но правая сторона не дает того же результата, даже если значения z-index верны, и даже этот скриншот подтверждает мою точку зрения, что это ошибка в WPF.

1 Ответ

5 голосов
/ 10 ноября 2009

В wpf технически ваша мышь старше 18 лет. Способы запуска событий (могут) следующие:

Я за "16", наведите курсор мыши на 16 Я старше 18 лет, наведите курсор мыши на 18

Поскольку 18 был вызван последний раз, он выбран (опять же, мое предположение).

В аргументах события mousemove (я полагаю, mousemove) установите e.Handled = true, таким образом, он обрабатывается только один раз

...