Использование RenderTransform для увеличения размера DataTemplate в WPF - PullRequest
2 голосов
/ 28 января 2009

Я использую DataTemplate, который анимирует RenderTransform, чтобы увеличить его размер, когда мышь находится над ним. Проблема, с которой я столкнулся, заключается в том, что когда анимация включена, элемент увеличенного списка появляется позади других элементов. Есть ли способ контролировать ZIndex элемента списка из моего DataTemplate, чтобы он всегда был поверх других элементов?

Ответы [ 2 ]

0 голосов
/ 29 января 2009

zIndex доступен только для элементов, размещенных внутри Canvas. Следовательно, вы можете обернуть весь элемент управления listbox на холсте, а затем установить Canvas.zIndex на 99 как часть триггера, который вы используете для преобразования. Однако я не мог заставить это работать.

Единственный другой вариант, который сработал, - это использование LayoutTransform, а не RenderTransform, поскольку это будет перемещать другие элементы в сторону, поскольку преобразование вычисляется до размещения элементов. Это будет означать, что нет необходимости устанавливать zIndex, однако это будет зависеть от ваших требований.

0 голосов
/ 29 января 2009

Вы можете установить ZIndex для Templated Element из шаблона, используя триггеры. Найдите шаблонный родительский элемент управления, анализируя VisualTree, как показано ниже

{RelativeSource FindAncestor, AncestorType = ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...