C# WPF | 我如何在另一个函数中更改按钮的文本?:((((
C# WPF | 我如何在另一个函数中更改按钮的文本?:((((
我刚开始学习C#编程,我不确定是语法出了问题还是WPF出了问题,我想要改变按钮的文本,但是我做不到,如果有人能帮助我,我将非常感激。
在MainWindow方法中,我初始化了一个Grid对象作为主要布局容器,并将其设置为窗口的内容。然后,我创建了一个Button对象,并设置其宽度,高度和边距。我还为按钮的点击事件添加了BTNclick方法作为处理程序。为了实现按钮显示文本,我创建了一个WrapPanel对象,并在其中添加了一个TextBlock对象。我将按钮的内容设置为WrapPanel对象,并将按钮添加到主Grid中。
在BTNclick方法中,我暂时注释掉了BTNtext.Text = "Clicked!";这行代码,这是为了测试按钮点击事件的功能。
问题的原因是在构造函数中定义了BTNtext TextBlock类,因此无法在另一个函数中访问它。需要将BTNtext TextBlock类定义在MainWindow类级别(构造函数外部):
private TextBlock BTNtext;
在构造函数中创建一个新实例并将其分配给类成员:
BTNtext = new TextBlock();
然后可以在点击事件处理程序中访问BTNtext:
private void BTNclick(object sender, RoutedEventArgs e) { BTNtext.Text = "Clicked!"; }
我注意到了几件事:
- Button类有一个内容属性,可以用于简单地显示文本:Content MSDN Docs
- 一旦掌握了基础知识,应该了解MVVM模式:MVVM SO
文章标题:C# WPF | 如何在另一个函数中更改按钮上的文本? :((()
问题的原因是在构造函数中定义了BTNtext TextBlock类,因此无法在另一个函数中访问它。需要将BTNtext TextBlock类定义在MainWindow类级别(构造函数外部)。在构造函数中创建一个新实例并将其分配给类成员。然后可以在点击事件处理程序中访问BTNtext。此外,还提到了Button类的内容属性可以用于显示文本,并建议学习MVVM模式。
代码示例:
private TextBlock BTNtext; public MainWindow() { InitializeComponent(); BTNtext = new TextBlock(); } private void BTNclick(object sender, RoutedEventArgs e) { BTNtext.Text = "Clicked!"; }
一旦掌握了基础知识,可以进一步了解MVVM模式。