【发布时间】:2015-07-03 10:47:15
【问题描述】:
我有一个显示进度条的控件。
我希望进度条的颜色有效地成为当前渲染背景颜色的更强版本,例如:
- 如果背景是浅黄色,我希望进度条是深黄色。
- 如果背景是浅绿色,我希望进度条是深绿色。
- 等
这在 WPF 中可行吗?
请注意,我不知道是谁在为我设置背景颜色,所以我无法真正手动设置。
更新
我应该澄清一些父控件在 XAML 中将Background 设置为transparent。
然而,就可视化树而言,这仅仅意味着Background 被传递给所有的孩子。
【问题讨论】:
-
不能只绑定当前控件模板背景吗?
-
添加一个通过 VisualTree 获取父级背景的附加属性怎么样?
-
尝试使用父窗口的背景((Window)this.Parent).Background
-
您是否尝试实现主题?使用这种方法(具有不同的样式/画笔/等),您不会在视图或 ViewModel(mvvm?)中执行任何操作,但它是通过使用相同的样式键自动完成的,但合并了不同的
ResourceDisctionary。跨度> -
@Simplyvaibh 感谢您的提示,但我使用的是 MVVM,因此避免使用后面的代码。