如何禁用所有按钮

Jos*_*Zyl 2 c# button expression-blend

我有一个方法可以禁用窗口上的所有butttons.但我似乎无法获得Button类型以匹配Resource集合

我正在使用带有ac#代码隐藏的Expression Blend 3

void DisableButtons()
    {
        for(int i = 0; i>= this.Resources.Count -1; i ++)
        {
            if (this.Resources[i].GetType() == typeof(Button))
            {
                Button btn = (Button)this.Resources[i];
                btn.IsEnabled = false;
            }
        }

    }
Run Code Online (Sandbox Code Playgroud)

更新

谢谢你的回答!确定循环正在运行,但我的代码不正确. this.Resources 好像不包括我的按钮!这可能是一个混合的东西?

是的.我最终手动完成了.因为我很仓促,并没有一个简单的简单解决方案.感谢所有的输入!

Via*_*ukh 5

void DisableButtons()
{
    for(int i = 0; i < Resources.Count; i ++)
    {
        var btn = Resources[i] as Button;
        if(btn != null)
        {
            btn.IsEnabled = false;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

实现它的简单方法是使用带有LINQ查询的foreach指令,但这种方式需要更多的资源.

void DisableButtons()
{
    foreach(var button in Resources.OfType<Button>())
    {
        button.IsEnabled = false;
    }
}
Run Code Online (Sandbox Code Playgroud)