C# 如何获得wpf中多个项目的边界框?

C# 如何获得wpf中多个项目的边界框?,c#,wpf,vb.net,silverlight,transform,C#,Wpf,Vb.net,Silverlight,Transform,我有几个项目,我想计算一个最小的矩形,他们可以适合,但项目旋转到一定程度,或倾斜或两者兼而有之。那么,如何得到可以包含所有元素的最小矩形呢 您可以获得每个项目的边界框,计算其四个端点,然后对其应用变换(倾斜、旋转等) 然后,您可以通过计算所有这些点的最小值和最大值x和y来轻松计算边界框。对所需的项目列表执行foreach操作。在循环的每个迭代中,获取项目的画布位置(左上方),并添加ActualWidth/ActualHeight以获得右下方的点。取左上角和右下角的点,调用Transform.Tr

我有几个项目,我想计算一个最小的矩形,他们可以适合,但项目旋转到一定程度,或倾斜或两者兼而有之。那么,如何得到可以包含所有元素的最小矩形呢


您可以获得每个项目的边界框,计算其四个端点,然后对其应用变换(倾斜、旋转等)


然后,您可以通过计算所有这些点的最小值和最大值x和y来轻松计算边界框。

对所需的项目列表执行foreach操作。在循环的每个迭代中,获取项目的画布位置(左上方),并添加ActualWidth/ActualHeight以获得右下方的点。取左上角和右下角的点,调用Transform.Transform来获得实际的左上角和右下角点


跟踪左上角和右下角的最小值和最大值,以获得边界框。

这里是一个指向一个实现的链接。此控件自动调整自身大小以适应其内容,因此可以在此代码中找到问题的答案。查看测量超越功能