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