WPF: сетка - как получить строку и столбец элемента с помощью MouseMove или аналогичных событий, когда курсор находится над пустой ячейкой? - PullRequest
1 голос
/ 18 ноября 2009

Как я уже говорил в заголовке этого вопроса - у меня есть макет на основе WPF Grid с двумя строками заголовка и несколькими пустыми. Сетка имеет около 100 столбцов.

Я пытаюсь достичь ситуации, в которой я смогу выделить ячейку пустого ряда, когда мышь над ней (и запустить событие, когда пользователь щелкнет эту ячейку).

Я набросал свою концепцию:

sketch

Когда курсор находится над ячейкой во второй строке и третьем столбце, я хотел бы изменить границу этой ячейки и, зная номер строки и столбца, изменить границы нескольких других ячеек.

Спасибо за любую помощь.

1 Ответ

1 голос
/ 18 ноября 2009

Что вы обычно делаете в такой ситуации, так это добавляете фиктивный элемент UIElement, например Border, Rectangle (или ContentControl, который впоследствии мог бы содержать ваш фактический контент), который полностью заполняет ячейку, а затем по запросу MouseMove Grid.GetColumn Grid.GetRow для UIElement попадания. Затем вы можете перебрать все дочерние элементы вашей сетки и изменить границы там, где это необходимо.

Но если я посмотрю на ваш пример изображения, то мне кажется, что вы хотите отобразить вспомогательные строки, намекающие на строку и столбец вашей текущей ячейки. Это можно легко сделать, используя Adorners . По сути, это дополнительный слой поверх всего, где вы можете разместить дополнительные визуальные элементы, привязанные к размеру и положению элемента управления. Вы должны создать Adorner для текущей ячейки (Border, ContentControl)

...