本文整理汇总了C#中System.Windows.Size.Count方法的典型用法代码示例。如果您正苦于以下问题:C# Size.Count方法的具体用法?C# Size.Count怎么用?C# Size.Count使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.Windows.Size
的用法示例。
在下文中一共展示了Size.Count方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ArrangeOverride
/// <summary>
/// Positionates each child in the available space of the NavigationBar depending on the expanding states.
/// </summary>
/// <param name="arrangeSize">The maximum possible space given by the parent control.</param>
/// <returns>The calculated needed space in sum of all available child controls.</returns>
protected override Size ArrangeOverride(Size arrangeSize)
{
var sizes = new Size[InternalChildren.Count];
for (var i = 0; i < InternalChildren.Count; ++i)
{
var element = InternalChildren[i];
if (element == null)
continue;
sizes[i] = element.DesiredSize;
var isSharing = GetIsExpanded(element);
switch (Orientation)
{
case Orientation.Horizontal:
if (isSharing)
sizes[i].Width = 0;
sizes[i].Height = arrangeSize.Height;
break;
case Orientation.Vertical:
if (isSharing)
sizes[i].Height = 0;
sizes[i].Width = arrangeSize.Width;
break;
}
}
var heightLeft = arrangeSize.Height;
var widthLeft = arrangeSize.Width;
for (var i = 0; i < InternalChildren.Count; ++i)
{
var element = InternalChildren[i];
if (element == null)
continue;
var isSharing = GetIsExpanded(element);
if (!isSharing && Orientation == Orientation.Horizontal)
widthLeft -= sizes[i].Width;
else if (!isSharing && Orientation == Orientation.Vertical)
heightLeft -= sizes[i].Height;
}
double heightItemsCout = sizes.Count(i => i.Height == 0);
double widthItemsCout = sizes.Count(i => i.Width == 0);
var missingItemHeight = heightLeft / Math.Max(heightItemsCout, 1);
var missingItemWidth = widthLeft / Math.Max(widthItemsCout, 1);
for (var i = 0; i < InternalChildren.Count; ++i)
{
var element = InternalChildren[i];
if (element == null)
continue;
if (sizes[i].Height == 0)
sizes[i].Height = missingItemHeight;
if (sizes[i].Width == 0)
sizes[i].Width = missingItemWidth;
}
var x = 0.0;
var y = 0.0;
for (var i = 0; i < InternalChildren.Count; ++i)
{
var element = InternalChildren[i];
if (element == null)
continue;
var size = sizes[i];
var position = new Rect(x, y, size.Width, size.Height);
element.Arrange(position);
if (Orientation == Orientation.Horizontal)
x += size.Width;
else
y += size.Height;
}
return arrangeSize;
}