【问题标题】:How to target all buttons inside Window?如何定位窗口内的所有按钮?
【发布时间】:2012-12-27 02:24:42
【问题描述】:

我的WPF 窗口中有几个按钮。如何定位窗口内的所有按钮,无论它们是在 Stack panels 还是 Dock Panels 内。我想针对所有人,以便能够通过设置更改所有人的背景颜色。

除了针对按钮的每个单独名称之外,还有其他方法吗?

【问题讨论】:

  • 您想在运行时更改颜色还是只更改一次所有颜色?

标签: c# wpf button


【解决方案1】:

看看这个问题Find all controls in WPF Window by type

它展示了如何获取 WPF 应用程序中的所有控件,然后您可以设置按钮的背景颜色。

foreach (Button btn in FindVisualChildren<Button>(window))
{
    btn.Background = new SolidColorBrush(Colors.Black);
}

FindVisualChildren 来自链接的答案。

【讨论】:

  • 我已经投票删除我的答案,因为这个答案显然是正确的,你是第一个回答的,我的只会引起混乱
【解决方案2】:

为资源中的按钮定义样式而不给出键名。它将自动应用于窗口中的所有按钮。

 <Style TargetType="{x:Type Button}">
        <Setter Property="Background" Value="Red"/>
    </Style>

希望对你有帮助..

【讨论】:

    猜你喜欢
    • 2018-04-14
    • 1970-01-01
    • 2018-04-04
    • 1970-01-01
    • 1970-01-01
    • 2015-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多