允许WPF网格单元格内容在网格单元格外扩展?

时间:2011-06-14 01:56:29

标签: wpf xaml layout grid

我的WPF窗口中有一个Grid。当按下某个特定按钮时,我希望其中一个网格单元格中的控件向下扩展到原始大小的两倍。发生这种情况时,控件将被剪切到包含单元格的可视边界。但是,我需要在下面的单元格顶部显示所有内容。我尝试将Panel.ZIndex设置为高值,但无济于事。我基本上需要模仿" overflow:visible"的功能。在CSS中。这在WPF / Xaml中是否可行?

3 个答案:

答案 0 :(得分:8)

将单元格内控件的ClipToBounds属性设置为False,然后将单元格的内容包装在画布中。 Canvas是一个有保证的突破界限,并非所有控件都可以(例如Buttons)。

示例:

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

答案 1 :(得分:2)

  • 使用RowSpan或columnspan
  • 定义网格时,单元格位于底部。由于渲染引擎从上到下呈现,您希望此单元格位于其他单元格之上。您可以使用zindex,但我尽量减少维护zindex。

答案 2 :(得分:1)

您可以使用弹出窗口http://msdn.microsoft.com/en-us/library/system.windows.controls.primitives.popup.aspx执行此操作,尤其是如果您希望溢出忽略窗口边界(例如,涉及装饰器的解决方案可能不会)。您需要将控件放入弹出窗口,然后展开弹出窗口的高度以获得溢出效果。您可能需要在弹出窗口后面放置另一个面板或其他内容,以确保非扩展尺寸保持正确。