【发布时间】:2013-05-07 11:43:35
【问题描述】:
private void selectColor_ManipulationDelta(object sender, ManipulationDeltaEventArgs e)
{
xMove += e.DeltaManipulation.Translation.X;
yMove += e.DeltaManipulation.Translation.Y;
double xMax = 350;
double yMax = 40;
if (xMove < 0)
{
xMove = 0;
}
else if (xMove > xMax)
{
xMove = xMax;
}
if (yMove < 0)
{
yMove = 0;
}
else if (yMove > yMax)
{
yMove = yMax;
}
int x = Convert.ToInt32(xMove);
int y = Convert.ToInt32(yMove);
var writeableBmp = new WriteableBitmap(selectColor, null);
var tempColor = writeableBmp.GetPixel(x, y);
Brush imageColor = new SolidColorBrush(tempColor);
txtBlockName.Foreground = imageColor;
}
当我在名为selectColor 的画布内点击并拖动时,此函数用于处理操作增量。 yMove 和 xMove 是记录总移动的 2 个双精度数。它们是在函数之前声明的。正如标题所述,我得到一个IndexOutOfRangeException,它指向x。我不明白这是怎么可能的,因为我已经设置了画布内的最大值/最小值。我的画布正好是 350x40,所以当 x = 180 时它不应该给我这个错误。我现在有点困惑,任何帮助/建议将不胜感激。
【问题讨论】:
标签: c# xaml windows-phone-8 writeablebitmap