C#中怎么在新建window窗体里面 自定义 鼠标光标大小 , 我自定义的光标图片无论多大
C#中怎么在新建window窗体里面自定义鼠标光标大小,我自定义的光标图片无论多大,显示出来的都是一样大小。...
C#中怎么在新建window窗体里面 自定义 鼠标光标大小 , 我自定义的光标图片无论多大 ,显示出来的都是一样大小。
展开
展开全部
在C# 加载光标的多种方法。
首先最简单的当然是调用系统的光标集。例如:
Cursor m_Cursor = Cursors.Cross;//加载一个十字光标
但系统里的光标有时并不能满足你的需求,这就必须要自己定义了。
可以通过以下几种方法,实现自定义光标:
1.
Cursor m_Cell = new Cursor(new MemoryStream(Properties.Resources.Cursor_Cell));
其中 Properties.Resources.Cursor_Cell 是资源文件中已定义的光标
你可以通过多种方法自己制作光标文件,然后保存到资源文件中再进行调用。
2.
Bitmap myNewCursor = Properties.Resources.Cell;
Cursor m_Cell = new Cursor(myNewCursor.GetHicon());
其中 Properties.Resources.Cell 是资源文件中JPG格式图片
这种方法相对第一种方法的好处是JPG格式图片比光标文件占用的空间小得多,
但加载的光标往往是黑白两色。
3.
想占用较小空间,又想使光标色彩斑斓,则可用这种方法,
用代码实现光标绘制。
public Cursor myCell()
{
Bitmap tmp_Cursor = new Bitmap(16, 16);//光标大小一般为16*16个像素
Graphics g = Graphics.FromImage(tmp_Cursor);
SolidBrush tmp_Brush = new SolidBrush(Color.Black);//黑色边框
SolidBrush tmp_BrushM = new SolidBrush(Color.LightBlue);//亮蓝色底色
Rectangle tmp_Rect = new Rectangle(4, 0, 8, 16);//边框
Rectangle tmp_RectM = new Rectangle(0, 4, 16, 8);
Rectangle tmp_Rect2 = new Rectangle(5, 1, 6, 14);
Rectangle tmp_RectM2 = new Rectangle(1, 5, 14, 6);
g.Clear(Color.FromArgb(0, 0, 0, 0));
g.FillRectangle(tmp_Brush, tmp_Rect);
g.FillRectangle(tmp_Brush, tmp_RectM);
g.FillRectangle(tmp_BrushM, tmp_Rect2);
g.FillRectangle(tmp_BrushM, tmp_RectM2);
Cursor m_Cell = new Cursor(tmp_Cursor.GetHicon());
g.Dispose();
tmp_Cursor.Dispose();
return m_Cell;
}
以上代码实现了一个类似微软Excel 单元格的光标,亮蓝色底色,黑色边框。
首先最简单的当然是调用系统的光标集。例如:
Cursor m_Cursor = Cursors.Cross;//加载一个十字光标
但系统里的光标有时并不能满足你的需求,这就必须要自己定义了。
可以通过以下几种方法,实现自定义光标:
1.
Cursor m_Cell = new Cursor(new MemoryStream(Properties.Resources.Cursor_Cell));
其中 Properties.Resources.Cursor_Cell 是资源文件中已定义的光标
你可以通过多种方法自己制作光标文件,然后保存到资源文件中再进行调用。
2.
Bitmap myNewCursor = Properties.Resources.Cell;
Cursor m_Cell = new Cursor(myNewCursor.GetHicon());
其中 Properties.Resources.Cell 是资源文件中JPG格式图片
这种方法相对第一种方法的好处是JPG格式图片比光标文件占用的空间小得多,
但加载的光标往往是黑白两色。
3.
想占用较小空间,又想使光标色彩斑斓,则可用这种方法,
用代码实现光标绘制。
public Cursor myCell()
{
Bitmap tmp_Cursor = new Bitmap(16, 16);//光标大小一般为16*16个像素
Graphics g = Graphics.FromImage(tmp_Cursor);
SolidBrush tmp_Brush = new SolidBrush(Color.Black);//黑色边框
SolidBrush tmp_BrushM = new SolidBrush(Color.LightBlue);//亮蓝色底色
Rectangle tmp_Rect = new Rectangle(4, 0, 8, 16);//边框
Rectangle tmp_RectM = new Rectangle(0, 4, 16, 8);
Rectangle tmp_Rect2 = new Rectangle(5, 1, 6, 14);
Rectangle tmp_RectM2 = new Rectangle(1, 5, 14, 6);
g.Clear(Color.FromArgb(0, 0, 0, 0));
g.FillRectangle(tmp_Brush, tmp_Rect);
g.FillRectangle(tmp_Brush, tmp_RectM);
g.FillRectangle(tmp_BrushM, tmp_Rect2);
g.FillRectangle(tmp_BrushM, tmp_RectM2);
Cursor m_Cell = new Cursor(tmp_Cursor.GetHicon());
g.Dispose();
tmp_Cursor.Dispose();
return m_Cell;
}
以上代码实现了一个类似微软Excel 单元格的光标,亮蓝色底色,黑色边框。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询