【问题标题】:How to invalidate page to enforce rendering again?如何使页面无效以再次强制渲染?
【发布时间】:2011-07-29 17:31:08
【问题描述】:

我的 windows phone 7 应用程序中有一个页面。此页面将其背景颜色设置为基于设置选项动态添加的 StaticResource。

现在问题是这样的:假设页面现在是白色的,我转到设置并从此页面中选择背景黑色,然后单击确定返回(当然还要重置 App.xaml 上的静态资源)。当我回到主页时,因为应用程序已经在内存中拥有此页面,它仍然会有白色背景。
我可以确认设置已正确保存,因为当我退出并返回时,它可以正常工作。

如何使 silverlight 页面的呈现状态无效?或者我怎么能告诉 silverlight 不要在 navigation.back() 上保留页面并始终创建一个新版本?

我在 UIElement 上找到了一些 InvalidateXXX() 方法,但它们似乎无关紧要。

谢谢

【问题讨论】:

    标签: c# silverlight windows-phone-7


    【解决方案1】:

    我猜您正在删除并重新添加 App 资源?如果是这样,StaticResource 绑定仍然从 App.xaml 引用该命名画笔的前一个实例。我收集到 StaticResource 绑定不响应键的更改,仅响应 INotifyPropertyChanged 事件。

    尝试更改现有画笔资源的颜色值而不是替换画笔例如:

    (Application.Current.Resource["myColor"] as SolidColorBrush).Color = Colors.Red;
    

    画笔的 Color 属性是一个依赖属性,所以更改应该随处更新。

    *注意:我只能用 SL 而不是 WP7 进行测试,因为这里的机器是 Win server 2003

    【讨论】:

    • 啊,糟了。不是 nuffin。 为自尊拍拍 +1。干杯
    猜你喜欢
    • 2012-08-18
    • 2020-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-31
    相关资源
    最近更新 更多