У меня есть две страницы, на первой странице я декодирую файл, из которого я получаю координаты, и записываю их в массив. Я хочу использовать этот массив в другом классе.
public sealed partial class FileManagerPage : Page
{
public float[] arr;
public struct _arrayByte...
static int Decode_dy(byte b0, byte b1, byte b2)...
static int Decode_dx(byte b0, byte b1, byte b2)...
private async void FileList_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
_arrayByte _bytes;
StorageFolder externalDevices = KnownFolders.RemovableDevices;
IReadOnlyList<StorageFolder> externalDrives = await externalDevices.GetFoldersAsync();
StorageFolder usbStorage = externalDrives[0];
StorageFile file1 = await usbStorage.GetFileAsync(fileList.SelectedItem.ToString());
if (file1 != null)
{
var buffer1 = await FileIO.ReadBufferAsync(file1);
byte[] buf1 = WindowsRuntimeBufferExtensions.ToArray(buffer1);
int FileLenght = ((((buf1.Length - header) / 3) * 3) + header);
MassLenght_x_y = ((FileLenght - header) / 3) * sizeof(int) * 2;
int dx,dy,k = 0;
float ix,iy = 0;
int[] a = new int[MassLenght_x_y];
arr = new float[MassLenght_x_y];
MassLenght_x_y = ((FileLenght - header) / 3) * sizeof(int) * 2;
if (MassLenght_x_y > 0) Array.Clear(a, 0, a.Length); //Очистить массив
for (int i = header; i < FileLenght; i += 3, k += 2)
{
_bytes.b0 = buf1[i];
_bytes.b1 = buf1[i + 1];
_bytes.b2 = buf1[i + 2];
dx = Decode_dx(_bytes.b0, _bytes.b1, _bytes.b2);
dy = Decode_dy(_bytes.b0, _bytes.b1, _bytes.b2);
a[k] = dx;
a[k + 1] = dy;
ix = ix + dx;
iy = iy + (-1 * dy);
arr[k] = ix;
arr[k + 1] = iy;
}
}
else
{
return;
}
}
}
Я хочу прочитать массив "arr" в другом классе
public sealed partial class Win2DPage : Page
{
...
private void CanvasControl_Draw(CanvasControl sender, CanvasDrawEventArgs args)
{
if (!Window.Current.Visible) return;
float x0, y0, x1, y1;
for (int a = 0; a < MassLenght_x_y; a += 4)
{
if (a >= 4)
{
a = a - 2;
x0 = 300f + 0.3f * arr[a]; //error
y0 = 300f + 0.3f * arr[a + 1];
x1 = 300f + 0.3f * arr[a + 2];
y1 = 300f + 0.3f * arr[a + 3];
args.DrawingSession.DrawLine(x0, y0, x1, y1, Colors.Red);
}
else
{
x0 = 300f + 0.3f * arr[a]; //error
y0 = 300f + 0.3f * arr[a + 1];
x1 = 300f + 0.3f * arr[a + 2];
y1 = 300f + 0.3f * arr[a + 3];
args.DrawingSession.DrawLine(x0, y0, x1, y1, Colors.Red);
}
}
CanvasControl.Invalidate();
}
}
Я думаю, что это очень глупый вопрос, но Я до сих пор не смог найти ответ ... Нашел такие примеры Но я думаю, они мне не подходят, может я и ошибаюсь.