我想将矩形的大小增加10像素。以下代码似乎无效。假设sampleRect是我的矩形。请告诉我。
Rectangle temp = new Rectangle(
sampleRect.X - 10,
sampleRect.Y - 10,
sampleRect.Width + 2*10,
sampleRect.Height + 2*10);
答案 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也会改变中心周围的大小。