【问题标题】:Windows API Code Pack TaskDialog missing iconWindows API 代码包 TaskDialog 缺少图标
【发布时间】:2014-04-28 23:41:26
【问题描述】:

我的TaskDialog 中的图标不见了:

在任务栏中:

我的代码是这样的:

using Microsoft.WindowsAPICodePack;
using Microsoft.WindowsAPICodePack.Dialogs;

...

TaskDialog taskDialog = new TaskDialog();
taskDialog.Caption = "Error";
taskDialog.InstructionText = "Test error message.";
taskDialog.Text = "Icon seems to be missing.";
taskDialog.DetailsExpandedText = "Test";
taskDialog.DetailsCollapsedLabel = "Expand";
taskDialog.StandardButtons = TaskDialogStandardButtons.Ok;
taskDialog.Icon = TaskDialogStandardIcon.Error;
taskDialog.Show();

我正在使用来自here 的 1.1 版。 任何线索为什么它们丢失以及如何启用它们?依赖项设置如下:

  <dependency>
    <dependentAssembly>
      <assemblyIdentity
      type="win32"
      name="Microsoft.Windows.Common-Controls"
      version="6.0.0.0"
      processorArchitecture="*"
      publicKeyToken="6595b64144ccf1df"
      language="*"
/>
    </dependentAssembly>
  </dependency>

【问题讨论】:

    标签: c# windows icons windows-api-code-pack


    【解决方案1】:

    我会将此添加为评论,但我没有足够的代表。删除这行代码后,标记的答案对我有用:

        taskDialog.FooterIcon = taskDialog.FooterIcon;
    

    它导致了一个未处理的异常。

    【讨论】:

    • 试试if (Icon != TaskDialogStandardIcon.None) Icon = Icon; if (FooterIcon != TaskDialogStandardIcon.None) FooterIcon = FooterIcon;
    • PS:如果您对正确的对话框窗口高度有疑问,请添加:if (InstructionText != null) InstructionText = InstructionText;。希望对您有所帮助。
    【解决方案2】:

    我找到了解决方法。显然这是 API 本身的错误。

    taskDialog.Opened += new EventHandler(taskDialog_Opened);
    
    ...
    
    public void taskDialog_Opened(object sender, EventArgs e)
    {
        TaskDialog taskDialog = sender as TaskDialog;
        taskDialog.Icon = taskDialog.Icon;
        taskDialog.FooterIcon = taskDialog.FooterIcon;
        taskDialog.InstructionText = taskDialog.InstructionText;
    }
    

    【讨论】:

    • 如何在 vb.net 中做同样的事情?
    • AddHandler taskDialog.Opened, Sub(sender As TaskDialog, args As EventArgs) sender.Icon = sender.Icon sender.InstructionText = sender.InstructionText End Sub
    • 从 NuGet 下载 Aybe 的 WindowsAPICodePack 以解决此问题。为我工作!
    • @KnorxThieus 我希望你把链接放在你的评论中。
    • 解决方案是使用WindowsAPICodePack by Aybe
    猜你喜欢
    • 1970-01-01
    • 2015-06-21
    • 1970-01-01
    • 2022-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-15
    • 1970-01-01
    相关资源
    最近更新 更多