C# 访问App.xaml、App.xaml.cs中Controltemplate中的Textblock

C# 访问App.xaml、App.xaml.cs中Controltemplate中的Textblock,c#,wpf,xaml,C#,Wpf,Xaml,我在App.xaml中有一个类似的控件模板: <ControlTemplate x:Key="Register" > <Grid> <TextBox Name="REGUSEBOX"/> <ButtonName="REGBUTTON" Click="Button_Click" /> </Grid </ControlTemplate> 这应该可以做到: private void Button_Click(

我在App.xaml中有一个类似的控件模板:

 <ControlTemplate x:Key="Register" >
  <Grid>
   <TextBox Name="REGUSEBOX"/>
   <ButtonName="REGBUTTON" Click="Button_Click" />
  </Grid
 </ControlTemplate>


这应该可以做到:

private void Button_Click(object sender, RoutedEventArgs e)
{
    Button button = sender as Button;
}

第一个参数是
按钮
对象

Button button = sender as Button;
这个按钮就是你想要的。但是,我建议在WPF的开发中使用
MVVM
模式


如果你想知道更多

发送者
点击
事件这里有一个
按钮
。您可以将其强制转换为
按钮
类型,获取父元素(即
网格
),按名称查找父元素的子元素,并将其强制转换为
文本框

private void Button_Click(object sender, RoutedEventArgs e)
{
    Button button = sender as Button;
    Grid grd = button.Parent as Grid;
    TextBox txt = grd.FindName("REGUSEBOX") as TextBox;
}
注意:wpf方法通常不需要这样的操作。文本框绑定+按钮命令应该允许在模型中完成所有工作,而不是在代码隐藏中。如果控件必须根据某些条件更改其外观,样式和触发器会有所帮助

谢谢:)这就完成了。只是学习一些高级WPF.:>