如何在wpf后面的代码中设置窗口图标?

时间:2011-11-24 08:50:27

标签: wpf icons code-behind

在xaml中它是:

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

我想把它转换成代码。

由于

3 个答案:

答案 0 :(得分:21)

这样的东西
myWindow.Icon = new BitmapImage(new Uri("/VBDAdvertisement;component/Images/logoVBD.png"));

您可能需要更多地限定路径。

修改:我认为该路径应采用pack-uri格式:

"pack://application:,,,/VBDAdvertisement;component/Images/logoVBD.png"

答案 1 :(得分:6)

试试这个,它绝对适用于png和ico图像格式。

window.Icon = BitmapFrame.Create(Application.GetResourceStream(new Uri("LiveJewel.png", UriKind.RelativeOrAbsolute)).Stream);

答案 2 :(得分:4)

这是正确的方法(假设MyIcon.ico位于名为MyApplication的WPF项目的根文件夹中):

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

这也是在XAML中为窗口设置Icon属性时实际发生的情况。

当仅将Icon设置为新的Bitmap时,它将无法平滑且正确地渲染,而是相当多的像素化。