【发布时间】:2014-10-08 10:05:03
【问题描述】:
我通过自己的 SDK 从外部控制器获取 X 和 Y 坐标。
所以,我想把这个坐标转换成一个半透明的圆圈并模拟鼠标光标。
我有以下代码,但我只能绘制半透明的圆圈,我不能“擦除”以前的圆圈。
我想画半透明的圆圈,当我画下一个圆圈时把它们擦掉。我应该在坐标和以下坐标之间绘制某种过渡来模拟“运动”。 我发现的另一个问题是,我无法在标准组件上画圈,如按钮、文本框等……
//...
System.Drawing.Graphics g = this.CreateGraphics();
g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
System.Drawing.Color translucentYellow = System.Drawing.Color.FromArgb(128, Color.Yellow);
System.Drawing.SolidBrush aBrush = new System.Drawing.SolidBrush(translucenYellow);
g.CompositingQuality = system.Drawing.Drawing2D.CompositingQuality.GammaCorrected;
g.FillEllipse(aBrush, X, Y, width, height);
//.….
【问题讨论】:
-
也许更改实际的鼠标光标以显示该图像会更容易?至于另一个问题:无论你画什么,都应该在 Paint 事件中绘制或触发;这将照顾'旧' paixels。但是在表单上绘图不会在控件上绘图。所以,回到我的第一个建议..
-
@TaW 所以,你建议我把光标移动到这个坐标,改变它的外观,不是吗?
-
嗯,这真的取决于你的用例。它应该仍然充当光标还是仅在外部移动?在后一种情况下,请寻求 usr 的答案:将面板移动到表单或可能的另一个表单之上..!
-
真的,这些坐标是从一个凝视控制器得到的,想法是用凝视代替鼠标光标,所以,这应该是一个光标。
-
在这种情况下,我想我会将光标设置为一个图标并通过代码移动它..