【问题标题】:WPF PreferredSize property?WPF PreferredSize 属性?
【发布时间】:2012-03-16 09:33:59
【问题描述】:

在 Windows 窗体中,您有一个 PreferredSize 属性,该属性将告诉您控件的大小。

WPF 中的那个属性在哪里?

我有一个包含一些内容(大小未知)的网格,并且想创建一个动画,将网格的高度从 0 增加到其首选(自动)高度。当然,网格要么在 0 高度,要么在开始时折叠,因为它不应该立即弹出,而是平滑地“淡入”。所以我不能对动画目标使用 ActualHeight 属性,因为它始终为 0。相反方向的动画应该更容易,因为我可以从 ActualHeight(或只是没有明确的起始值)动画到 0。

【问题讨论】:

  • 同时,我尝试了各种 DesiredSize、UpdateLayout、InvalidateMeasure、ActualHeight 等,但充其量只能工作一次,然后高度再次保持为 0。 MSDN 和 IntelliSense 没有帮助我。
  • 也许这可以帮助你:msdn.microsoft.com/en-us/library/… 文档中提到了 MeasureCoreArrangeCore
  • 不,这些方法不公开。
  • 在这里您可以找到related question

标签: wpf layout


【解决方案1】:

给定一个 FrameworkElement(元素),我希望让它完全扩展,然后测量它的大小,我执行以下操作:

element.Measure(new Size(double.PositiveInfinity, double.PositiveInfinity));
element.Arrange(new Rect(new Point(0, 0), element.DesiredSize));
element.UpdateLayout();
Size sizeElementWantsToBe = element.DesiredSize;

警告:我发现这个问题是因为我在使用带有模板列的 Telerik RadGridViews 触发布局的方法时遇到问题。但我怀疑你会遇到这个问题。

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-12-12
    • 2014-05-23
    • 2011-05-21
    • 1970-01-01
    • 2011-03-16
    相关资源
    最近更新 更多