C# 访问App.xaml、App.xaml.cs中Controltemplate中的Textblock
我在App.xaml中有一个类似的控件模板: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(
<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.:>