1

是否可以在引用控件中获取刻度条(点)的当前位置?

我的意思是:|----[tic​​kbar]-----------------|

编辑:

好的。我想到了。这只是简单的数学。我只需要测试偏移量,尤其是左边。

var value = trackBar1.Value;
var width = trackBar1.Width - 26; //Real width without margins. 26 = right and left offset
var locationX = trackBar1.Location.X + 13; //Real X location. 13 is left offset.
var maxValue = trackBar1.Maximum;
var delta = (double)width / (double)maxValue;

var tickBarLocationX = (int)(locationX + (delta * value));

我可以用 Y 位置做同样的事情。

4

1 回答 1

1

在开发 WinForms 实现时,Mono 项目必须经历很多痛苦才能弄清楚所有这些细节。通过查看他们的代码,您可以得到这个问题以及许多其他问题的答案。

您的具体问题在ThemeWin32Classic.cs中的 GetTrackBarDrawingInfo() 方法中得到解答。

于 2013-10-10T18:41:00.027 回答