背景
我希望能够在picturebox中获得缩放图像的绘制尺寸(我将在下面解释)。
PictureBox.ImageRectangle
属性似乎正是我正在寻找的,因为它显示了resize的图像的高度和宽度,以及它是相对的顶部,在控制的左侧位置。
麻烦的是PictureBox.ImageRectangle
是私人的,所以我不能读取值不使用reflection(这显然是不理想的)。
实际问题
我的问题是,还有另外一种方法,我可以很容易地得到这些价值,而不用写一个方法来计算值应该是什么? 我可以很容易地做到这一点,但我觉得我会重新发明轮子。
语境:
我在C#中编写了一个简单的image processing应用程序,它所要做的一件事就是允许用户围绕图像的一部分进行select(很像Photoshop中的选框工具)。
我需要知道渲染图像的尺寸,所以我知道在哪里设置我的选取框工具的边界,并将绘制的矩形的值转换为控件内缩放的位图上的点。
我的答案看起来很简单,所以也许我失去了一些东西,但我认为Control.DisplayRectangle适合您的需要。
编辑
好吧,错过了这一点; 但请参阅如何获得非公众成员的图片框的价值?
如果你想访问图片框中的图像的维度,你可以使用
GraphicsUnit units = GraphicsUnit.Point; RectangleF imgRectangleF = pictureBox1.Image.GetBounds(ref units); Rectangle imgRectangle = Rectangle.Round(imgRectangleF);