【问题标题】:Assign a system icon to a label将系统图标分配给标签
【发布时间】:2010-12-06 00:57:44
【问题描述】:

我目前正在开发一个 c# 应用程序。我正在制作自己的自定义消息框,所以我想知道是否可以将默认系统图标(即您将在标准 MessageBox 上看到的图标之一)分配给标签。

【问题讨论】:

    标签: c# wpf


    【解决方案1】:
    System.Drawing.Icon myIcon = new System.Drawing.Icon(System.Drawing.SystemIcons.Question,32,32);
    label.Image = myIcon.ToBitmap();
    

    【讨论】:

      【解决方案2】:

      您可以与 System.Drawing 和 System.Windows.Forms 互操作:

      System.Drawing.Icon icon = System.Drawing.SystemIcons.Warning;
      
      BitmapSource bs = System.Windows.Interop.Imaging.CreateBitmapSourceFromHIcon(icon.Handle, Int32Rect.Empty, BitmapSizeOptions.FromEmptyOptions());
      
      image1.Source = bs;
      

      【讨论】:

      • 好建议。 “image1.Source should = bs”可能是“this.Icon = bs”
      • 哇!我从来没有注意到这个 SystemIcons 类......所以我自己实现了它。我讨厌意识到我重新发明了轮子......
      • 这是用于 WPF,而不是 Windows.Forms。
      【解决方案3】:

      SLaks 的解决方案可能是最简单的方法。如果出于某种原因,您不想使用 Windows 窗体功能,那么您可以很容易地自己实现:

      public enum SystemIcons
      {
          Application = 32512,
          Error = 32513,
          Hand = Error,
          Question = 32514,
          Warning = 32515,
          Exclamation = Warning,
          Information = 32516,
          Asterisk = Information,
          WinLogo = 32517,
          Shield = 32518,
      }
      
      public static ImageSource LoadSystemIcon(SystemIcons iconId)
      {
          string iconName = "#" + ((int)iconId);
          IntPtr hIcon = LoadIcon(IntPtr.Zero, iconName);
          if (hIcon == IntPtr.Zero)
              return null;
      
          return System.Windows.Interop.Imaging.CreateBitmapSourceFromHIcon(
              hIcon, Int32Rect.Empty, BitmapSizeOptions.FromEmptyOptions());
      }
      
      [DllImport("user32.dll")]
      static extern IntPtr LoadIcon(IntPtr hInstance, string lpIconName);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-12-04
        • 1970-01-01
        • 2010-10-07
        • 1970-01-01
        • 1970-01-01
        • 2013-10-07
        • 2020-10-18
        相关资源
        最近更新 更多