You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在this.后使用变量?实现TextBlock背景色设为蓝色

解决WPF中通过变量名设置TextBlock背景的问题

你当前代码的问题是:stand是存储TextBlock名称的字符串变量,this.stand这种写法是在访问当前类中名为stand的成员,而不是根据字符串名称查找对应的TextBlock控件。

给你两种解决思路:

方法一:直接使用事件源实例(最简便)

因为触发事件的sender本身就是被点击的TextBlock,直接强转后操作即可,完全不需要通过名称查找:

private void MouseDown_TextBlock(object sender, MouseButtonEventArgs e)
{
    var textBlock = (TextBlock)sender;
    textBlock.Background = blue;
}

方法二:通过控件名称字符串查找(适用于非当前触发控件的场景)

如果确实需要通过名称字符串定位控件,可以使用FindName方法:

private void MouseDown_TextBlock(object sender, MouseButtonEventArgs e)
{
    var stand = ((TextBlock)sender).Name;
    // 根据名称查找控件
    var targetTextBlock = this.FindName(stand) as TextBlock;
    // 判空避免空引用异常
    if(targetTextBlock != null)
    {
        targetTextBlock.Background = blue;
    }
}

内容的提问来源于stack exchange,提问作者M.Nasiri

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 12:10:29