Как поместить объект BitmapSource в массив, чтобы он не обнулялся вне области действия функции? - PullRequest
0 голосов
/ 01 апреля 2019

Проще говоря ...

private void LoadImage(object sender, EventArgs e){
    String path = null;
    Microsoft.Win32.OpenFileDialog oFD = new ...();
    if(oFD.showDialog == true){
        path = oFD.FileName;
        result = new BitmapImage(new Uri(path));
        Array.Resize(ref frames, frames.Length + 1);
        frames.Append<BitmapSource>(result);
    }
    Refresh();
}
private void Refresh(){
    BitmapSource bg = frames[curFrame]; //i.e. curFrame = 0;
}

Я ожидал, что bg не будет нулевым, когда вызывается Refresh ().Я перехватил все соответствующие исключения, за исключением того, что bg имеет значение null, в котором я не хочу, чтобы bg было нулевым при выполнении программы.

1 Ответ

0 голосов
/ 01 апреля 2019

Вызов Array.Append (объект) был причиной моей проблемы в этой ситуации. Я не знаю, для чего это было, но я предположил (ошибочно), что он добавляет объект в конец любого массива.

Я заменил эту строку следующим кодом и функциями своего кода, как я и предполагал.

frames[frames.Length - 1] = result;
...