【问题标题】:How to Add cursor files in resources of control Library project如何在控件库项目的资源中添加光标文件
【发布时间】:2011-01-26 19:37:02
【问题描述】:

我正在创建一个控件库项目。 我有一些光标文件要添加到资源中。

因为在Resources.resx上--->添加资源只针对String, Icon (.ico), Text file(.txt), 图片(Png、bmp、jpeg、gif、tiff)文件。

所以我可以在哪里添加 *.cur 文件。 我该怎么做?

谢谢

【问题讨论】:

标签: c# .net


【解决方案1】:

还有一个类别其他。在那里你可以添加任何你喜欢的东西。

您也可以单击添加资源旁边的小向下箭头,然后单击添加现有文件...。它会自动将其放入正确的类别中。

更新

好的。所以问题不在于将文件添加到资源中。而是从那里加载它会产生问题,因为Cursor class 只支持Stream,但不支持字节[]。

在这种情况下,您应该将其放入 MemoryStream 并将其提供给 Cursor 构造函数。

Cursor myCursor;
using (var memoryStream = new MemoryStream(Properties.Resources.MyCursorFile))
{
    myCursor = new Cursor(memoryStream);
}

【讨论】:

  • 查看我对 David Morton 的评论。我在将光标(由资源文件生成)的字节 [] 转换为光标对象时遇到问题。谢谢
【解决方案2】:

如果您单击“添加资源...”,则有一个“添加现有文件...”选项选择它并选择您的文件。

【讨论】:

  • 我之前尝试过,但资源文件生成的代码有问题。添加任何图像文件时请参阅代码。(Bmp,Png,ico,Gif,Tiff)资源文件生成以下代码内部静态System.Drawing.Bitmap QuestionIcon { get { object obj = ResourceManager.GetObject(“YourIconName”,resourceCulture) ;返回((System.Drawing.Bitmap)(obj));它返回位图,您可以在项目中轻松使用它。公共位图 questImage = Test.Properties.Resources.QuestionIcon ;
  • 但是当你添加 cur 文件时,它会返回一个如下所示的字节 []。内部静态字节[] mdColor { get { object obj = ResourceManager.GetObject("mdColor", resourceCulture);返回 ((byte[])(obj));我尝试将其转换为 Cursor 但未成功。请参阅我的代码 public byte[] magImage = CursorTest.Resource1.mdRectMag;不安全 { 固定 (byte* ptr = magImage){ IntPtr myPtr = new IntPtr((void*)ptr);Cursor myCur = new Cursor(myPtr);返回 myCur; } 返回空值; }
【解决方案3】:

感谢朋友

我做到了。
我使用以下代码进行转换:

Cursor My = new Cursor(new System.IO.MemoryStream(CursorTest.Resource1.MyCurFile));

【讨论】:

  • 哦,看来您已经自己找到了解决方案,但是您应该像我的示例中那样将 MemoryStream 放入 using 语句或调用myMemoryStream.Close()
猜你喜欢
  • 1970-01-01
  • 2021-09-11
  • 2014-01-29
  • 1970-01-01
  • 2022-10-21
  • 1970-01-01
  • 2015-03-12
  • 1970-01-01
  • 2018-12-05
相关资源
最近更新 更多