【发布时间】:2014-06-24 16:12:20
【问题描述】:
我正在开发一个应用程序,并且正在使用 MVVM 方法。
基本上,目前有两个Pages,和1个MainWindow。
我使用MainWindow 内的Frame 在页面之间切换。
在主窗口中,有2个按钮,基本上是全局的,应该在所有页面中显示; x(退出)和设置。
这基本上是我的“外壳”,因为我决定不使用窗口边框。
问题是我希望每个页面都有不同的背景,这就是它变得复杂的地方:
- 设置页面:灰色背景。
- 主页:根据属性改变的旋转背景颜色。
背景是在主窗口中设置的,因为它也应该应用于全局区域(顶部,退出和设置按钮所在的位置)。
我首先将背景(在MainWindow 中)设置为绑定到代表当前页面的属性(然后在转换器的帮助下将该值转换为颜色十六进制代码)。
总而言之,这会导致当页面更改时背景会更改,但MainPage 中的属性更改时不会更改。我可以清楚地理解为什么,但我不知道如何解决它。
目前我想出的可能解决方案:
- 当
MainPage中的属性更改时,不知何故导致MainWindow中的绑定更新/刷新。 - 从每个页面内手动更改背景。 (虽然不是否定了 mvvm 的思想吗?)
- 将背景移动到每个页面并从那里进行设置,同时在页面顶部制作全局按钮(如果控件最终重叠,这可能是一件坏事)。
如果是这样,这个问题的最佳解决方案是什么?
【问题讨论】:
-
为什么不让页面背景透明?所以他们实际上显示了
MainWindow的背景? -
它们是透明的。它们确实显示了
MainWindow的背景,但我希望该背景同时通过当前页面和页面内的属性进行更改。 -
嘿@xTCx,我用工作示例更新了我的答案。希望对您有所帮助!