【问题标题】:WPF application with multi Icon带有多图标的 WPF 应用程序
【发布时间】:2020-04-19 18:45:06
【问题描述】:

我尝试通过以下步骤制作一个带有闪烁图标的 wpf 应用程序:

  1. 在项目属性中将 Icon1.ico 设置为应用程序图标
  2. 创建一个 DispatcherTimer
  3. 向 DispatcherTimer 添加一个函数
  4. 在功能检查图标名称并更改它

代码是这样的

private void ToggleIconVisibility(object sender, EventArgs e)
    {
        if (((BitmapImage)Icon).UriSource.OriginalString.CompareTo("Icon1.ico") == 0)
        {
            Icon = new BitmapImage(new Uri("Icon2.ico", UriKind.RelativeOrAbsolute));
        }
        else
        {
            Icon = new BitmapImage(new Uri("Icon1.ico", UriKind.RelativeOrAbsolute));
        }
    }

当我在 Visual Studio 中运行它时效果很好,但在发布应用程序后找不到 Icon2 并崩溃。这两个图标文件都位于项目的根文件夹中。 如果有人可以帮助我,我将不胜感激。

【问题讨论】:

  • 您是否将您的图标作为资源包含在应用程序中?

标签: wpf windows icons


【解决方案1】:

我不知道您期望的图标是什么,或者您还有什么其他代码。

当我刚刚在应用程序中设置了对你的代码不起作用的图标时。

因此,我添加了一个 int 来标记哪个图标应该是当前的。

我将我的两个图标文件设置为内​​容,如果较新则复制。

这意味着它们与 exe 一起被复制。

此代码适用于我:

    private int currentIcon = 1;
    private void Button_Click(object sender, RoutedEventArgs e)
    {
        if (currentIcon ==1 )
        {
            Icon = new BitmapImage(new Uri("Icon2.ico", UriKind.RelativeOrAbsolute));
            currentIcon = 2;
            return;
        }

        Icon = new BitmapImage(new Uri("Icon1.ico", UriKind.RelativeOrAbsolute));
        currentIcon = 1;
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-12-01
    • 2010-12-25
    • 1970-01-01
    • 1970-01-01
    • 2023-03-19
    • 2019-06-18
    • 1970-01-01
    相关资源
    最近更新 更多