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