本文整理汇总了C#中UIElement.MeasureOverride方法的典型用法代码示例。如果您正苦于以下问题:C# UIElement.MeasureOverride方法的具体用法?C# UIElement.MeasureOverride怎么用?C# UIElement.MeasureOverride使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类UIElement
的用法示例。
在下文中一共展示了UIElement.MeasureOverride方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ScheduleReArrangeIfNeeded
private void ScheduleReArrangeIfNeeded(UIElement child)
{
bool isScheduled;
if (this.isChildRearrangeScheduled.TryGetValue(child, out isScheduled) && isScheduled)
{
return;
}
this.isChildRearrangeScheduled[child] = true;
this.Dispatcher.BeginInvoke(
delegate
{
try
{
if (child.measuredFor != null)
{
var measuredSize = child.MeasureOverride(child.measuredFor.Value);
if (child.arrangedSize == measuredSize)
{
child.Arrange(new RectangleF(child.TranslatePoint, child.arrangedSize));
return;
}
}
this.needsResizeChilds.Add(child);
this.InvalidateMeasure();
}
finally
{
this.isChildRearrangeScheduled[child] = false;
}
});
}
示例2: ArrangeChild
private void ArrangeChild(UIElement child)
{
if (child.NativeUIElement != null)
{
SizeF needSize = new SizeF();
if (this.childSizeCache.ContainsKey(child))
{
needSize = this.childSizeCache[child];
}
else
{
needSize = child.MeasureOverride(new SizeF(nfloat.PositiveInfinity, nfloat.PositiveInfinity));
this.childSizeCache[child] = needSize;
}
child.Arrange(new RectangleF((nfloat)Canvas.GetLeft(child), (nfloat)Canvas.GetTop(child), needSize.Width, needSize.Height));
}
}