繁体   English   中英

如何比较两个 Cursor 对象?

[英]How to compare a two Cursor objects?

我正在创建一个单元测试,我有一个应该由特定Bitmap制作的Cursor Cursor是使用以下代码创建的:

cursor = new Cursor(bmp.GetHicon());

其中bmpBitmap

这总是使测试失败(由bmp.GetHicon()创建的句柄总是新的):

Assert.AreEqual(bmp.GetHicon(), cursor.Handle);

我也想过使用Icon.FromHandle

事实上,您正在寻找如何比较两个游标。

您有位图和游标,并且您想检查是否使用位图创建了游标。 为此,作为一种选择,从位图创建一个游标然后进行比较,将这两个游标(从位图创建的新游标和现有游标)保存到流中并比较流。

例如:

bool ArEqual(Cursor cur1, Cursor cur2)
{
    byte[] bytes1, bytes2;
    using (var ico = Icon.FromHandle(cur1.Handle))
    using (var fs = new MemoryStream())
    {
        ico.Save(fs);
        bytes1 = fs.ToArray();
    }
    using (var ico = Icon.FromHandle(cur2.Handle))
    using (var fs = new MemoryStream())
    {
        ico.Save(fs);
        bytes2 = fs.ToArray();
    }
    return bytes1.SequenceEqual(bytes2);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM