如何增加矩形的大小

时间:2010-09-29 20:13:26

标签: c# .net gdi

我想将矩形的大小增加10像素。以下代码似乎无效。假设sampleRect是我的矩形。请告诉我。

Rectangle temp = new Rectangle(
    sampleRect.X - 10, 
    sampleRect.Y - 10, 
    sampleRect.Width + 2*10, 
    sampleRect.Height + 2*10); 

4 个答案:

答案 0 :(得分:11)

它会起作用,但您可以使用Inflate method

更优雅地编写相同的内容
rect.Inflate(10, 10);

您的方法和Inflate方法之间的一个重要区别是您创建了一个新的矩形实例,而Inflate修改了一个现有的矩形。

答案 1 :(得分:1)

我不确定你为什么会问“这会不会” - 试试吧!

然而,

 someRectangle.Inflate(10,20);
 //or 
 someRectangle.Inflate(10);

应该有效

答案 2 :(得分:1)

根据您对“以10像素增长”的定义,我会这样做:

int size = 10;
int halfSize = size/2;
Rectangle temp = new Rectangle(
    sampleRect.X - halfSize, 
    sampleRect.Y - halfSize, 
    sampleRect.Width + size, 
    sampleRect.Height + size); 

答案 3 :(得分:0)

与sampleRect相比,您拥有的代码将在x,y -10处创建一个新的Rectangle。为了补偿你,用20增加宽度和高度。

我假设您正在尝试增加围绕中心的矩形,在这种情况下,您需要将矩形移动一半的新增量。

示例:

var sizeIncrease = 10;
var newX = sampleRect.X - 0.5 * sizeIncrease;
var newY = sampleRect.Y - 0.5 * sizeIncrease;
var newWidth = sampleRect.Width + sizeIncrease;
var newHeight = sampleRect.Height + sizeIncrease;

这些值可以为您提供所需的内容

Rectangle.Inflate也会改变中心周围的大小。