信息
您所需的主题如下所示。但此主题未包含在此库中。

UIElement.DesiredSize 属性

更新:2007 年 11 月

获取此元素在布局过程的测量处理过程中计算的大小。

命名空间:  System.Windows
程序集:  PresentationCore(在 PresentationCore.dll 中)

public Size DesiredSize { get; }
/** @property */
public Size get_DesiredSize()

public function get DesiredSize () : Size

不能在 XAML 中设置此属性。

属性值

类型:System.Windows.Size

计算大小,该大小成为排列处理过程所需的大小。

只有当 IsMeasureValid 属性值为 true 时,此属性返回的值才能作为有效的测量。

DesiredSize 通常在您实现布局行为重写(如 ArrangeOverrideMeasureOverrideOnRender)时选中作为测量因子之一。根据具体情况,您的实现逻辑可能会充分考虑 DesiredSize,可能应用 DesiredSize 上的约束,并且此类约束可能也会更改父元素或子元素的其他特征。例如,支持可滚动区域(但选择不从已启用可滚动区域的 WPF 框架级别控件派生)的控件可以将可用大小与 DesiredSize 进行比较。该控件于是可以在其 UI 中设置启用滚动条的内部状态。或者,在某些情况下也可能忽略 DesiredSize

下面的示例演示一个自定义装饰器如何使用 DesiredSize 值来创建定义装饰器的矩形图形并调整其大小,同时作为其 OnRender 实现的一部分。

protected override void OnRender(DrawingContext drawingContext)
{
  // Get a rectangle that represents the desired size of the rendered element
  // after the rendering pass.  This will be used to draw at the corners of the 
  // adorned element.
  Rect adornedElementRect = new Rect(this.AdornedElement.RenderSize);

  // Some arbitrary drawing implements.
  SolidColorBrush renderBrush = new SolidColorBrush(Colors.Green);
  renderBrush.Opacity = 0.2;
  Pen renderPen = new Pen(new SolidColorBrush(Colors.Navy), 1.5);
  double renderRadius = 5.0;

  // Just draw a circle at each corner.
  drawingContext.DrawEllipse(renderBrush, renderPen, adornedElementRect.TopLeft, renderRadius, renderRadius);
  drawingContext.DrawEllipse(renderBrush, renderPen, adornedElementRect.TopRight, renderRadius, renderRadius);
  drawingContext.DrawEllipse(renderBrush, renderPen, adornedElementRect.BottomLeft, renderRadius, renderRadius);
  drawingContext.DrawEllipse(renderBrush, renderPen, adornedElementRect.BottomRight, renderRadius, renderRadius);
}


Windows Vista

.NET Framework 和 .NET Compact Framework 并不是对每个平台的所有版本都提供支持。有关支持的版本的列表,请参见.NET Framework 系统要求

.NET Framework

受以下版本支持:3.5、3.0

社区附加资源

显示:
© 2015 Microsoft