Исправил SetPictureSize() и SetPosition()
This commit is contained in:
parent
72c1646109
commit
d6acb857ab
@ -70,21 +70,24 @@ public class DrawningExcavator
|
|||||||
{
|
{
|
||||||
//TODO проверка, что объект "влезает" в размеры поля
|
//TODO проверка, что объект "влезает" в размеры поля
|
||||||
//если влезает, сохраняем границы и корректируем позицию объекта, если она уже была установлена
|
//если влезает, сохраняем границы и корректируем позицию объекта, если она уже была установлена
|
||||||
_pictureWidth = width;
|
if(_drawingExcWidth > width || _drawingExcHeight > height) {
|
||||||
_pictureHeight = height;
|
|
||||||
if (_pictureWidth <= _drawingExcWidth || _pictureHeight <= _drawingExcHeight)
|
|
||||||
{
|
|
||||||
_pictureHeight = null;
|
|
||||||
_pictureWidth = null;
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_pictureWidth = width;
|
||||||
|
_pictureHeight = height;
|
||||||
|
if (_startPosX.HasValue || _startPosY.HasValue)
|
||||||
|
{
|
||||||
if (_startPosX + _drawingExcWidth > _pictureWidth)
|
if (_startPosX + _drawingExcWidth > _pictureWidth)
|
||||||
{
|
{
|
||||||
_startPosX = _pictureWidth.Value - _drawingExcWidth;
|
_startPosX = _pictureWidth - _drawingExcWidth;
|
||||||
}
|
}
|
||||||
|
else if (_startPosX < 0) _startPosX = 0;
|
||||||
if (_startPosY + _drawingExcHeight > _pictureHeight)
|
if (_startPosY + _drawingExcHeight > _pictureHeight)
|
||||||
{
|
{
|
||||||
_startPosY = _pictureHeight.Value - _drawingExcHeight;
|
_startPosY = _pictureHeight - _drawingExcHeight;
|
||||||
|
}
|
||||||
|
else if (_startPosY < 0) _startPosY = 0;
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -96,15 +99,26 @@ public class DrawningExcavator
|
|||||||
/// <param name="y">Координата Y</param>
|
/// <param name="y">Координата Y</param>
|
||||||
public void SetPosition(int x, int y, int width, int height)
|
public void SetPosition(int x, int y, int width, int height)
|
||||||
{
|
{
|
||||||
|
if (!_pictureWidth.HasValue || !_pictureHeight.HasValue)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
//TODO если при установке объекта в эти координаты, он будет "выходить" за границы формы
|
//TODO если при установке объекта в эти координаты, он будет "выходить" за границы формы
|
||||||
//то надо изменить координаты, чтобы он оставался в этих границах
|
//то надо изменить координаты, чтобы он оставался в этих границах
|
||||||
if (x >= 0 && x + _drawingExcWidth <= width && y >= 0 && y + _drawingExcWidth <= height)
|
if (x + _drawingExcWidth > _pictureWidth)
|
||||||
{
|
{
|
||||||
_startPosX = x;
|
_startPosX = _pictureWidth - _drawingExcWidth;
|
||||||
_startPosY = y;
|
|
||||||
_pictureWidth = width;
|
|
||||||
_pictureHeight = height;
|
|
||||||
}
|
}
|
||||||
|
else if (x < 0) _startPosX = 0;
|
||||||
|
else _startPosX = x;
|
||||||
|
|
||||||
|
if (y + _drawingExcHeight > _pictureHeight)
|
||||||
|
{
|
||||||
|
_startPosY = _pictureHeight - _drawingExcHeight;
|
||||||
|
}
|
||||||
|
else if (y < 0) _startPosY = 0;
|
||||||
|
else _startPosY = y;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
Loading…
Reference in New Issue
Block a user