Я пытался буквально часами, и я не смог сдвинуть с места эту проблему.
У меня есть UserControl, который имеет размер 800x369, и он содержит просто путь, который формирует карту мира.Я помещаю это на альбомную страницу, а затем отображаю в WriteableBitmap.Затем я запускаю преобразование, чтобы превратить массив 1d Pixels в 2d массив целых чисел.Затем, чтобы проверить преобразование, я подключаю команду click пользовательского элемента управления, чтобы использовать Point.X и Point.Y относительно пользовательского элемента управления во вновь созданном массиве.Моя логика такова:
wb = new WriteableBitmap(worldMap, new TranslateTransform());
wb.Invalidate();
intTest = wb.Pixels.To2DArray(wb.PixelWidth);
Моя логика преобразования такова:
public static int[,] To2DArray(this int[] arr,int rowLength)
{
int[,] output = new int[rowLength, arr.Length / rowLength];
if (arr.Length % rowLength != 0) throw new IndexOutOfRangeException();
for (int i = 0; i < arr.Length; i++)
{
output[i % rowLength, i / rowLength] = arr[i];
}
return output;
}
Теперь, когда я делаю проверку, я получаю совершенно и совершенно странные результаты: по-видимому, все пикселилибо со значениями -1 или 0, и эти значения полностью независимы от исходных цветов.
Только для потомков: вот мой проверочный код:
private void Check(object sender, MouseButtonEventArgs e)
{
Point click = e.GetPosition(worldMap);
ChangeNotification(intTest[(int)click.X,(int)click.Y].ToString());
}
Результат показывает, что нет абсолютно никакой корреляции с путем, который WriteableBitmap отобразил в нем.Путь заполнен сплошным белым цветом.
Что, черт возьми, происходит?Я пытался часами без удачи.Пожалуйста, это главная проблема, которая мешает мне представить свое первое приложение WP7.Любое руководство?