我如何设置弹出框的大小为它的内容

本文关键字:小为 何设置 设置 | 更新日期: 2023-09-27 18:17:10

我在WPF中有一个动态加载内容的Popup控件,每次我需要设置它的大小,这是如何自动完成的,所以它总是保持它的大小与它的内容大小。

<Popup 
      Name="popup1" 
      StaysOpen="False" 
      PlacementTarget="{Binding ElementName=myButton}" 
      Placement="Custom" 
      PopupAnimation="Fade" 
      AllowsTransparency="True">

我如何设置弹出框的大小为它的内容

一个弹出窗口已经根据内容大小。

默认情况下,弹出窗口的大小会根据内容自动调整。发生自动调整大小时,可能会隐藏某些位图效果,因为为弹出内容定义的屏幕区域的默认大小没有为显示位图效果提供足够的空间。

当你设置RenderTransform时,弹出内容也会被遮挡内容。在此场景中,如果转换后的弹出框的内容扩展到原来的弹出。如果位图效果或变换需要更多空间,您可以在弹出内容周围定义一个边距,以便提供更大的控制区域

也许你的Popup内容有大小问题,由于你限制你的布局容器内的增长?因此,你的弹出窗口大小相应,但你的Grid可能有一个固定的宽度。

很久以前我也遇到过类似的问题。我想说这是因为弹出框不是可视树的一部分,因此您无法根据动态内容重新渲染它。我所做的是创建一个看起来像弹出窗口的子控件,但它是可视树的一部分,一切都如预期的那样工作。

这只是一个模糊的旧记忆,但它可能是一个很好的起点,寻找一个更具体的答案。