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;
}
Эта функция предназначена для обработки ManipulationDelta, когда я нажмите и перетащите внутри холста называется selectColor
. yMove
и xMove
- 2 двухместных, которые записывают общее движение. они объявляются prio функции. Как сказано в заголовке, я получаю IndexOutOfRangeException
, и он указывает на x. Я не вижу, как это возможно, так как я установил значения max/min, которые находятся внутри холста. Мой холст ровно 350x40, поэтому, когда x = 180, он не должен давать мне эту ошибку. Я сейчас немного запутался, любая помощь/совет будут оценены.System.IndexOutOfRangeException при вызове GetPixel() на WriteableBitmap
спасибо, человек, не обратил на это внимание. исправил проблему, примет ответ в тот момент, когда я смогу –
Сняв тег winphone8. – Steve