static void ResizeTargetWithSnapToGrid(SpaceName tinyBoxSpaceName, UIControllerBox controllerBox, UIMouseEventArgs e)
{
//sample move with snap to grid
Point pos = controllerBox.Position;
int newX = pos.X + e.XDiff;
int newY = pos.Y + e.YDiff;
//snap to gridsize =5;
//find nearest snap x
int gridSize = 5;
float halfGrid = (float)gridSize / 2f;
int nearestX = (int)((newX + halfGrid) / gridSize) * gridSize;
int nearestY = (int)((newY + halfGrid) / gridSize) * gridSize;
int xdiff = nearestX - pos.X;
int ydiff = nearestY - pos.Y;
switch (tinyBoxSpaceName)
{
case SpaceName.LeftTop:
{
if (xdiff != 0 || ydiff != 0)
{
controllerBox.SetLocation(controllerBox.Left + xdiff, controllerBox.Top + ydiff);
controllerBox.SetSize(controllerBox.Width - xdiff, controllerBox.Height - ydiff);
var targetBox = controllerBox.TargetBox;
if (targetBox != null)
{
//move target box too
targetBox.SetBounds(controllerBox.Left + 5,
controllerBox.Top + 5,
controllerBox.Width - 10,
controllerBox.Height - 10);
}
}
}
break;
case SpaceName.RightTop:
{
if (xdiff != 0 || ydiff != 0)
{
controllerBox.SetLocation(controllerBox.Left, controllerBox.Top + ydiff);
controllerBox.SetSize(controllerBox.Width + xdiff, controllerBox.Height - ydiff);
var targetBox = controllerBox.TargetBox;
if (targetBox != null)
{
//move target box too
targetBox.SetBounds(controllerBox.Left + 5,
controllerBox.Top + 5,
controllerBox.Width - 10,
controllerBox.Height - 10);
}
}
}
break;
case SpaceName.RightBottom:
{
if (xdiff != 0 || ydiff != 0)
{
controllerBox.SetSize(controllerBox.Width + xdiff, controllerBox.Height + ydiff);
var targetBox = controllerBox.TargetBox;
if (targetBox != null)
{
//move target box too
targetBox.SetBounds(controllerBox.Left + 5,
controllerBox.Top + 5,
controllerBox.Width - 10,
controllerBox.Height - 10);
}
}
}
break;
case SpaceName.LeftBottom:
{
if (xdiff != 0 || ydiff != 0)
{
controllerBox.SetLocation(controllerBox.Left + xdiff, controllerBox.Top);
controllerBox.SetSize(controllerBox.Width - xdiff, controllerBox.Height + ydiff);
var targetBox = controllerBox.TargetBox;
if (targetBox != null)
{
//move target box too
targetBox.SetBounds(controllerBox.Left + 5,
controllerBox.Top + 5,
controllerBox.Width - 10,
controllerBox.Height - 10);
}
}
}
break;
}
}
static void ResizeTargetWithSnapToGrid2(UIControllerBox controllerBox, UIMouseEventArgs e)