WPF中设置Button位置失败,使用Location属性报错求解决
这个坑我之前踩过好几次!你遇到的错误本质是用错了UI框架的控件属性——毕竟不同框架里Button的定位方式差得老远了,具体分两种情况给你说:
如果你是在写WinForms项目
WinForms里的Button确实有Location属性,要是报错的话,大概率是命名空间没弄对:
- 先检查代码顶部有没有加
using System.Windows.Forms; - 再确认你的
Button是System.Windows.Forms.Button类型,别不小心引用了WPF的Button(比如复制粘贴错了代码)
要是都没问题,试试重启VS或者重新生成项目,有时候智能感知会抽风出bug。
如果你是在写WPF项目
划重点!WPF里的Button根本就没有Location这个属性!要调整位置得看它所在的面板来:
- 要是Button放在Canvas里,用这两行代码定位:
Canvas.SetLeft(leftButton, 1); Canvas.SetTop(leftButton, 1); - 要是在Grid、StackPanel这类面板里,用Margin属性来调整(顺序是左、上、右、下):
要是用Grid的话,也可以先给Button指定Row和Column,再配合HorizontalAlignment、VerticalAlignment来精准定位。leftButton.Margin = new Thickness(1, 1, 0, 0);
怎么快速区分自己用的是哪个框架?
看你的窗体/窗口类:WinForms的是public partial class YourForm : Form,WPF的是public partial class YourWindow : Window;或者鼠标悬停在代码里的Button上,看提示里的命名空间就行。
内容的提问来源于stack exchange,提问作者JoshJoshJosh
相关产品推荐
相关产品推荐

