我的 silverlight windows phone 8 页面上有一个网格系统,单击按钮即可容纳许多图片。单元格的大小指定为 150x100。
我的问题是,如果原始图像尺寸为 1000x1500,它会在网格中被挤压,因为纵横比会有所不同。有没有办法处理这个,下面是我写的代码。请告诉我我必须对代码进行哪些更改。
注意:我正在使用比例变换并将 ScaleX 和 ScaleY 指定为 1。
public resizeImage(Image img)
{
double originalHeight = 500;
double originalWidth = 1000;
double originalAspectRatio = originalWidth / originalHeight;
if (img.Width < originalWidth || img.Height < originalHeight)
{
// no change has to be done
PageScale.ScaleX = 1.0;
PageScale.ScaleY = 1.0;
}
else
{
// keeping aspect ratio the same
if (img.Width / img.Height > originalAspectRatio)
{
// taking height into consideration
PageScale.ScaleY = img.Height / originalHeight;
PageScale.ScaleX = PageScale.ScaleY;
}
else
{
//taking width into consideration
PageScale.ScaleX = img.Width / originalWidth;
PageScale.ScaleY = PageScale.ScaleX;
}
}
}