【发布时间】:2010-08-05 00:46:02
【问题描述】:
从代码中获取 WPF 资源的最简单方法是什么?
如果选中同一窗口中的复选框,我需要禁用 WPF 表单中的文本框。我已将复选框连接到代码隐藏中的事件处理程序。事件处理程序禁用复选框并将其背景更改为浅灰色,表示控件已禁用:
private void OnCheckBoxChecked(object sender, RoutedEventArgs e)
{
MyTextBox.IsEnabled = false;
MyTextBox.Background = (Brush)FindResource("DisabledControlBackgroundBrush");
}
禁用的控件背景颜色被定义为资源字典中的资源,该资源字典被导入 WPF 窗口。我通过在 XAML 中设置文本框背景来测试资源,并且资源工作正常。
我也知道事件处理程序正在工作,因为它会在单击复选框时禁用文本框。
我的问题是事件处理程序没有按应有的方式更改 Background 属性。我怀疑我对 FindResource 的调用存在问题,但我没有收到异常,并且“输出”窗口中没有任何内容。
那么,我如何从代码中获取此资源并将其应用于我的文本框?感谢您的帮助。
【问题讨论】: