C# 仅在windows应用商店应用程序中在画布内缩放和拖动图像
在过去的一周里,我一直在努力在画布的范围内转换图像C# 仅在windows应用商店应用程序中在画布内缩放和拖动图像,c#,xaml,winrt-xaml,windows-8.1,C#,Xaml,Winrt Xaml,Windows 8.1,在过去的一周里,我一直在努力在画布的范围内转换图像 void image_ManipulationDelta(object sender, ManipulationDeltaRoutedEventArgs e) { var name = (Image)sender; var translate = (CompositeTransform)name.RenderTransform; var newPosX = Canvas.GetLeft(name) + translate.Transl
void image_ManipulationDelta(object sender, ManipulationDeltaRoutedEventArgs e)
{
var name = (Image)sender;
var translate = (CompositeTransform)name.RenderTransform;
var newPosX = Canvas.GetLeft(name) + translate.TranslateX + e.Delta.Translation.X;
var newPosY = Canvas.GetTop(name) + translate.TranslateY + e.Delta.Translation.Y;
if (!isBoundary(newPosX, DrawCanvas.ActualWidth - name.ActualWidth, 0))
translate.TranslateX += e.Delta.Translation.X;
if (!isBoundary(newPosY, DrawCanvas.ActualHeight - name.ActualHeight, 0))
translate.TranslateY += e.Delta.Translation.Y;
}
bool isBoundary(double value, double max, double min)
{
return value > max ? true : value < min ? true : false;
}
}
缩放也完成了,但不限于画布内部,当我缩放图像使其变大时,其画布也在缩放,当我缩小其大小时,其画布(拖动)区域也在缩小。
需要帮助限制缩放及其画布问题 尝试将CenterX/Y设置为.5/.5。我认为这些可能基于0..1范围。同样的行为,我只想限制画布内的缩放,并提供一条超出限制的消息等?我认为我的代码不适用于画布内的所有类型的转换。我的代码中需要添加什么?
translate.CenterX=.5代码>
{
var translate = (CompositeTransform)name.RenderTransform;
translate.CenterX = name.ActualWidth / 2;
translate.CenterY = name.ActualHeight / 2;
translate.ScaleX += e.Delta.Translation.X*0.001 ;
translate.ScaleY += e.Delta.Translation.Y*0.001;