Я хочу вычислить расстояние BorderControl до Grid, в котором он добавлен, но в округленном проценте.Округление удвоений до int C#
Я использую этот метод:
internal static tPosition GetControlTPosition(Border tempInnerControl, Grid tempOuterGrid)
{
tPosition tempTPosition = new tPosition();
Point tempInnerControlCornerPoint = tempInnerControl.PointToScreen(new Point(0, 0));
Point tempOuterGridCornerPoint = tempOuterGrid.PointToScreen(new Point(0, 0));
//
//Top Left Corner
//Fist we calculate the Distance of the Top left Corners of both elements
double distanceLeft = tempInnerControlCornerPoint.X - tempOuterGridCornerPoint.X;
double distanceTop = tempInnerControlCornerPoint.Y - tempOuterGridCornerPoint.Y;
//Then we set the percentage of our position accordingly
tempTPosition.PositionLeft = (int)(((distanceLeft) * 100/tempOuterGrid.ActualWidth));
tempTPosition.PositionTop = (int)((distanceTop) * 100/tempOuterGrid.ActualHeight);
//
// Bottom Right Corner
//Now we calculate the distance of the bottom right corner to the outher grids bottom right corner
double distanceRight = (tempOuterGridCornerPoint.X + tempOuterGrid.ActualWidth) - (tempInnerControlCornerPoint.X + tempInnerControl.ActualWidth);
double distanceBottom = (tempOuterGridCornerPoint.Y + tempOuterGrid.ActualHeight) - (tempInnerControlCornerPoint.Y + tempInnerControl.ActualHeight);
tempTPosition.PositionRight = (int)((distanceRight)*100/tempOuterGrid.ActualWidth);
tempTPosition.PositionBottom = (int)((distanceBottom) * 100/tempOuterGrid.ActualHeight);
return tempTPosition;
}
Моя проблема заключается в том, что BorderControl продолжает становиться все больше, а это означает есть проблема с причем проценты к низкому уровню, я предполагаю, что это происходит потому, что я потерять точность. Как я могу избежать этого?
Мне нужны цифры как int, по разным причинам.
tPosition только слева, сверху, справа, снизу, как Интс
Хм, ш Вы делаете что-то подобное? Не было бы лучше, если бы это было обработано стандартным механизмом WPF? – DHN
im, пишущий редактор для чего-то, в нем вы можете перетаскивать изображения на фоне, эти рисунки устанавливаются в процентах к общему фону (внешняя сетка) для масштабируемости. Теперь этот метод вызывается после того, как изображение было перемещено, поэтому я могу получить его позицию, и я не знаю лучшего способа получить позицию и преобразовать ее в процентах. – Master117