【问题标题】:How to set window icon in code behind in wpf?如何在 wpf 后面的代码中设置窗口图标?
【发布时间】:2012-01-05 11:00:41
【问题描述】:

在 xaml 中是:

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

我想把它转换成后面的代码。

谢谢

【问题讨论】:

标签: wpf icons code-behind


【解决方案1】:

有点像

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

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

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

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

【讨论】:

  • 是的,它是:myWindow.Icon = new BitmapImage(new Uri("pack://application:,,,/VBDAdvertisement;component/Images/logoVBD.png"));谢谢:)
  • 为了避免丑陋的“pack...”字符串,请查看stackoverflow.com/questions/1127647/…
【解决方案2】:

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

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

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

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

【讨论】:

    【解决方案3】:

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

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

    【讨论】:

      猜你喜欢
      • 2017-07-04
      • 2011-08-25
      • 1970-01-01
      • 1970-01-01
      • 2021-06-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-05
      相关资源
      最近更新 更多