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

Jat*_*ing 14 wpf icons code-behind

在xaml中它是:

  <View:BaseWindow.Icon>
    /VBDAdvertisement;component/Images/logoVBD.png
  </View:BaseWindow.Icon>
Run Code Online (Sandbox Code Playgroud)

我想把它转换成代码.

谢谢

H.B*_*.B. 21

就像是

myWindow.Icon = new BitmapImage(new Uri("/VBDAdvertisement;component/Images/logoVBD.png"));
Run Code Online (Sandbox Code Playgroud)

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

编辑:因为我认为路径应该是pack-uri格式:

"pack://application:,,,/VBDAdvertisement;component/Images/logoVBD.png"
Run Code Online (Sandbox Code Playgroud)


Chr*_*oll 11

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

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

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

当只是将图标设置为一个新的位图时,它不会被平滑和正确地渲染,而是相当多的像素化。


Joe*_*oee 6

试试这个绝对适用于png和ico图像格式.

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