Подтвердить что ты не робот

Разрешить содержимое ячейки сетки WPF расширяться за пределами ячейки сетки?

У меня есть Grid в моем окне WPF. Когда нажата конкретная кнопка, я хочу, чтобы элемент управления в одной из ячеек Grid расширялся вниз, чтобы удвоить его первоначальный размер. Когда это происходит, элемент управления привязывается к визуальным границам содержащейся ячейки. Тем не менее, мне нужно, чтобы весь контент был видимым, над верхней частью ячейки ниже. Я попытался установить Panel.ZIndex на большое значение, но безрезультатно. Мне в основном нужно подражать функциональности "переполнения: видимые" в CSS. Возможно ли это в WPF/Xaml?

4b9b3361

Ответ 1

Задайте свойство ClipToBounds элемента управления в ячейке False, а затем оберните содержимое ячейки в холсте. Canvas - это гарантированный разрыв за пределами, но не все элементы управления (например, кнопки).

Пример:

<Canvas Grid.Row="5" Grid.Column="3">
    <TextBlock Text="Long text here" ClipToBounds="False">
</Canvas>

Ответ 2

  • использовать RowSpan или столбцы
  • при определении сетки помещает ячейку внизу. Поскольку механизм рендеринга отображается сверху вниз, и вы хотите, чтобы эта ячейка была поверх ваших других ячеек. Вы можете уйти с zindex, но я стараюсь свести к минимуму сохранение zindex.

Ответ 3

Возможно, вы можете сделать это с помощью всплывающего окна: http://msdn.microsoft.com/en-us/library/system.windows.controls.primitives.popup.aspx, особенно если вы хотите, чтобы переполнение игнорировало границы окна (решения, связанные с украшениями, например, не может). Вы хотите поместить элемент управления во всплывающее окно, а затем развернуть высоту всплывающего окна, чтобы получить эффект переполнения. Возможно, вам придется добавить другую панель или что-то за всплывающее окно, чтобы гарантировать, что размер нерасширенного размера остается верным.