拖拽控件到设计器里,运行没问题,第一次在.cs中也能得到 this.shilong控件,但是一运行(调试或者启动或者Ctrl+F5)马上.cs里的this.shilong就报错,上下文找不到shilong
shilong是控件拖入设计器后在属性里修改的Name的值
在xaml里会自动生成 AutomationProperties.Name
在cs中第一次写入没问题
但是如果删除AutomationProperties.Name直接改为Name就没有任何问题
这是为什么?有没有什么办法解决这个问题,不然每次在属性里修改Name都会这样很麻烦
你需要区分 AutomationProperties.Name 和 x:Name 两者的区别。
正确的使用方式:
<TextBox x:Name="tb1" ... AutomationProperties.Name="shilong"/>
MessageBox.Show(this.tb1.Text);
以下链接或许对你有用:
https://stackoverflow.com/questions/4605777/automationproperties-name-vs-xname