Как установить значок окна в коде позади в wpf? - PullRequest
14 голосов
/ 24 ноября 2011

В xaml это:

  <View:BaseWindow.Icon>
    /VBDAdvertisement;component/Images/logoVBD.png
  </View:BaseWindow.Icon>

Я хочу преобразовать его в код позади.

Спасибо

Ответы [ 3 ]

21 голосов
/ 24 ноября 2011

Что-то вроде

myWindow.Icon = new BitmapImage(new Uri("/VBDAdvertisement;component/Images/logoVBD.png"));

Возможно, вам придется уточнять путь.

Редактировать: Как я и думал, путь должен быть в pack-uri формате:

"pack://application:,,,/VBDAdvertisement;component/Images/logoVBD.png"
6 голосов
/ 12 августа 2016

Попробуйте, это абсолютно подходит как для png, так и для формата изображений ico.

window.Icon = BitmapFrame.Create(Application.GetResourceStream(new Uri("LiveJewel.png", UriKind.RelativeOrAbsolute)).Stream);
4 голосов
/ 18 ноября 2015

Это правильный способ сделать это (при условии, что MyIcon.ico помещен в корневую папку проекта WPF с именем MyApplication):

Uri iconUri = new Uri("pack://application:,,,/MyApplication;component/MyIcon.ico");
myWindow.Icon = BitmapFrame.Create(iconUri);

Это также то, что действительно происходит, когда вы устанавливаете свойство Icon для окна в XAML.

При установке значка на новое растровое изображение он не будет отображаться плавно и корректно, а вместо этого будет немного пикселизирован.

...