【问题标题】:Reset label control in code behind to original XAML?将代码后面的标签控件重置为原始 XAML?
【发布时间】:2012-11-11 07:45:31
【问题描述】:

我有一个带有一堆标签的 C# WPF 应用程序。 当我运行我的程序时,它会进行一些检查,无论检查是否为正,它都会将其对应的标签设置为绿色或红色。 这些更改在我的 .cs 文件中完成,例如:

lblCheck14.Foreground = new SolidColorBrush(Colors.Green);

我想添加一个“重置”按钮,将应用程序重置为初始启动状态。 我怎样才能最简单地实现这一点?

一种方法 - 但我真的希望有一种更聪明的方法,就是将它们全部设置为:

    lblCheck14.Foreground = new SolidColorBrush(Colors.Black);
    lblCheck21.Foreground = new SolidColorBrush(Colors.Black);
    lblCheck42.Foreground = new SolidColorBrush(Colors.Black);

等等。

但是我可以调用一个函数来消除 .cs 文件对 XAML 文件中的控件所做的任何更改吗?喜欢让 XAML 恢复原状吗?

对不起,我的后面解释。希望你能理解我:)

最好的问候

【问题讨论】:

  • 也许是因为我无法使用任何答案?为什么我应该接受一个我认为没有帮助的答案?我接受我认为有帮助的答案,句号。
  • 这绝对令人惊讶,在 19 个问题中,正确的很少。如果愿意帮助您的人越来越少,请不要感到惊讶。这只是一个提示,可以帮助您。

标签: c# wpf visual-studio-2010 xaml


【解决方案1】:

实现样式。当你点击重置时,你可以有一个默认的样式来回滚。

如果您不熟悉它们,请查看本教程:http://wpftutorial.net/Styles.html

【讨论】:

    【解决方案2】:

    不要在代码中操作 UIElements 的属性。 WPF不是winforms。正如 Yatrix 的回答所说,实现样式,甚至数据模板和触发器,以根据某些逻辑(在 ViewModel 或其他地方定义)操作不同 UIElements 的不同属性。建议你看看WPFTutorial.net

    【讨论】:

    • 您假设他正在使用 MVVM 模式。他可能不是。
    • @Yatrix 这正是问题所在。那些不理解甚至费心去理解这种模式的人,然后开始讨厌 WPF,因为他们认为他们可以做他们在 winforms 中所做的所有事情,并且一直在碰壁。
    • 我没有得到他讨厌 WPF 的印象。 MVVM 模式实际上只适用于大型应用程序。它会产生您不想在小型应用程序上产生的开销。以与 winform 相同的方式使用 WPF(视图/代码隐藏)并没有什么不妥。
    • 这很好,但是学习 MVVM 模式超出了他的问题范围。他正在寻找解决问题的方法,而不是 MVVM 教程。
    • @Yatrix 好点。我有时很容易失去注意力。我很抱歉。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-07
    • 2011-07-30
    • 2012-03-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多