Я пытаюсь использовать манипуляции для изменения масштаба холста. При отладке приведенного ниже кода кажется, что оба canImage.Width и canImage.Heigh устанавливаются на NaN
. Я не понимаю, как удвоить удвоение может дать Nan
(ширина ~ 400 Высота ~ 400 e.scale.y ~ -1,5 e.Scale.X ~ 0.3)
.
private void viewer_ManipulationCompleted(object sender, System.Windows.Input.ManipulationCompletedEventArgs e)
{
if (e.TotalManipulation.Scale.X != 0 && e.TotalManipulation.Scale.Y != 0) {
canImage.Width = mainImage.Width * (double)e.TotalManipulation.Scale.X;
canImage.Height = mainImage.Height * (double)e.TotalManipulation.Scale.Y;
}
}
РЕДАКТИРОВАТЬ: Просто введите условную точку останова, и кажется, e.TotalManipulation.Scale.X
и e.TotalManipulation.Scale.X
никогда не NaN
. Установка условия e.TotalManipulation.Scale.X > 0
действительно остановила проблему. Похоже, что установка высоты / ширины на что-то меньшее, чем просто заставляет их становиться NaN, а не просто падает. Спасибо за вашу помощь