我正在嘗試繪製自定義十字準線光標。繪製自定義十字準線光標只繪製光標的一半
這是我創建「十字光標」的函數。
問題是它只繪製正座標。 所以我得到了十字架的一半。
所以,當我把它收回去這個十字架上的紅色是不可見的。 一個解決方案是將所有的十字都設置爲正座標,但我不想要這個。
任何解決方案?
private Cursor crossCursor(System.Drawing.Pen pen, int x, int y)
{
var pic = new Bitmap(x, y);
var gr = Graphics.FromImage(pic);
//gr.Clip = new Region(new RectangleF(-x/2, -y/2, x, y));
var pathX = new GraphicsPath();
var pathY = new GraphicsPath();
pathY.AddLine(new Point(0, -y), new Point(0, y));
pathX.AddLine(new Point(-x, 0), new Point(x, 0));
gr.DrawPath(pen, pathX);
gr.DrawPath(pen, pathY);
var stream = new MemoryStream();
Icon.FromHandle(pic.GetHicon()).Save(stream);
// Convert saved file into .cur format
stream.Seek(2, SeekOrigin.Begin);
stream.WriteByte(2);
stream.Seek(10, SeekOrigin.Begin);
stream.Seek(0, SeekOrigin.Begin);
// Construct Cursor
return new Cursor(stream);
}
爲什麼不能使用正向座標? – Sayse
如果我使用正座標,問題是我的光標的實際hitPoint將是十字的最左端而不是中間的。 – dg90
生命點與您的繪圖代碼無關,[請參閱此問題](http://stackoverflow.com/q/11526351/1324033)或[msdn](http://msdn.microsoft.com/zh-cn/ -us/library/0b1674x8.aspx) – Sayse