我试图以编程方式设置标签的位置,但编译器说它不是变量,
label1.Location.X = 200;// shows an error
有什么技巧可以用来移动标签,不包括隐藏和显示控件。
技术是视觉c#而不是WPF。
我正在寻找一种在表单上移动一些文本的方法,我将文本的字符分开,为每个字符分别标注,以及数学公式
(x',y')=center;x'=200,y'=200,r=100
(x,y)=point on the circle.
sqr(x-x')+sqr(y-y')=sqr(r) => sqr(x-200)+sqr(y-200)=10000 => sqr(x)-400x+sqr(y)-400y+70000=0 =>
x1=(400+sqrt(160000-4sqr(y)+1600y-280000))/2 ;
x2=(400-sqrt(160000-4sqr(y)+1600y-280000))/2
此外,我正在考虑使用线程来刷新表单并创建动作,这只是我想要解决的一些想法。
非常感谢。答案 0 :(得分:3)
每个.NET程序员至少犯过一次这个错误。 Location属性是Point,值类型。当您检索其值时,您将获得副本,就像值类型一样。您正在更新该副本的X属性,编译器可以告诉您这是而不是您的想法。
您必须指定一个Point来更新属性值:
label1.Location = new Point(200, label1.Location.Y);
或者使用为避免编写此代码而生成的属性:
label1.Left = 200;
答案 1 :(得分:2)
要正确更改标签的位置,您必须将Location
设置为值(而不是Location
的X属性)。
lbl.Location = new Location(20, 50);
例如,如果您希望保留Y坐标,则可以执行以下操作:
lbl.Location = new Location(20, lbl.Location.Y);