Как загрузить значок, используя GetResourceStream в WPF? - PullRequest
1 голос
/ 06 апреля 2011

Я добавил значок в свой проект WPF (BuildAction установлен на Resource) и сейчас пытаюсь загрузить этот значок в поток:

using(Stream iconStream = Application.GetResourceStream(new Uri("red.ico")).Stream)
{
    // use the stream
}

Это дает мне следующую ошибку:

Неверный URI: не удалось определить формат URI.

Я пытался изменить конструкцию Uri, чтобы включить UriKind.Relative. Это дает:

Невозможно найти ресурс 'red.ico'.

Я просмотрел различные статьи по этому вопросу Например (из SO) и не вижу, что я делаю неправильно.

Любая помощь с благодарностью.

Ответы [ 2 ]

3 голосов
/ 06 апреля 2011

Попробуйте что-то вроде new Uri("pack://application:,,,/red.ico"), см. на этой странице для получения дополнительной информации об URI в WPF.

0 голосов
/ 08 апреля 2011

В конечном счете моя проблема сводилась к тому, что я создал пользовательскую точку входа для своего приложения WPF и пытался создать URI до вызова статических конструкций приложения.

Код изменился спримерно так:

public static void Main()
{
    var myUri = new Uri("/red.ico", UriKind.Relative);

    var app = new AppMain();
    app.Run();
}

примерно так:

public static void Main()
{
    var app = new AppMain();        

    var myUri = new Uri("/red.ico", UriKind.Relative);

    app.Run();
}
...