我有一个控件,当窗口缩小时,它无法完全显示。 但是该控件的ActualWidth和RenderSize/DesiredSize仍然显示其总大小。 我编写了下面的代码,但它忽略了窗口滚动条的宽度,看起来很丑陋。 也许有一种更优雅的方法来获取控件的可见大小?
private static double GetVisibleWidth(UIElement element, FrameworkElement container)
{
var visibleBounds =
element.TransformToAncestor(container)
.TransformBounds(new Rect(new Point(0, 0), element.RenderSize));
double visibleWidth = element.RenderSize.Width;
if (container != null)
{
visibleWidth = Math.Min(container.ActualWidth - visibleBounds.X, visibleWidth);
}
return visibleWidth;
}