C# WPF | 我如何在另一个函数中更改按钮的文本?:((((

16 浏览
0 Comments

C# WPF | 我如何在另一个函数中更改按钮的文本?:((((

我刚开始学习C#编程,我不确定是语法出了问题还是WPF出了问题,我想要改变按钮的文本,但是我做不到,如果有人能帮助我,我将非常感激。

在MainWindow方法中,我初始化了一个Grid对象作为主要布局容器,并将其设置为窗口的内容。然后,我创建了一个Button对象,并设置其宽度,高度和边距。我还为按钮的点击事件添加了BTNclick方法作为处理程序。为了实现按钮显示文本,我创建了一个WrapPanel对象,并在其中添加了一个TextBlock对象。我将按钮的内容设置为WrapPanel对象,并将按钮添加到主Grid中。

在BTNclick方法中,我暂时注释掉了BTNtext.Text = "Clicked!";这行代码,这是为了测试按钮点击事件的功能。

0
0 Comments

问题的原因是在构造函数中定义了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模式。

0