我有一个控件模板中的TextBlock。我想用TextBox的Text值更改所述TextBlock的Text。该值应在按钮单击事件中设置,但我尝试的方法无法实现。单击事件将给予错误消息,指出text
为空。
我是新来的WPF,并会感谢任何帮助。
控件模板的XAML:
<Window.Resources>
<ControlTemplate x:Key="panel" TargetType="Button">
<Grid>
<Rectangle x:Name="rectangle" Width="auto" Height="55" RadiusX="10" RadiusY="10"
Fill="White">
</Rectangle>
<TextBlock x:Name="txtBlk" Text="" Margin="10,10,0,0" />
</Grid>
</ControlTemplate>
</Window.Resources>
Button_Click事件的C#:
private void panelBtn_Click(object sender, RoutedEventArgs e)
{
var text = (TextBlock)this.Template.FindName("txtBlk", this);
text.Text = txtBox.Text;
}
2条答案
按热度按时间bvjveswy1#
您应该像这样引用按钮的模板。
sg2wtvxw2#
@MuhammadSulaiman正确地回答了你,但我会建议你改变实现。
与其在模板中查找元素,不如添加该元素将引用的资源并更改该资源。
第一个
您也可以变更XAML中的初始文字:
同样地,您可以透过这个容器的资源,为位于一个通用容器中的所有按钮设定通用初始文字。