Xaml 使用Windows Phone重新评估样式
我正在尝试在我的Windows Phone 8应用程序中实现一种主题化机制,我正在做的是从持久存储中获取一个设置,并将其解析为引用的样式:Xaml 使用Windows Phone重新评估样式,xaml,windows-phone-8,Xaml,Windows Phone 8,我正在尝试在我的Windows Phone 8应用程序中实现一种主题化机制,我正在做的是从持久存储中获取一个设置,并将其解析为引用的样式: Style="{Binding Source={StaticResource ThemeLocator}, Path=GetThemePanoBackground}" 其中ThemeLocator从定义背景的应用程序资源中返回样式 这很好,但是当主题被改变,我回到上一页时,样式不会被重新评估。我曾尝试查看DynamicResource,但我似乎无法获得任何
Style="{Binding Source={StaticResource ThemeLocator}, Path=GetThemePanoBackground}"
其中ThemeLocator
从定义背景的应用程序资源中返回样式
这很好,但是当主题被改变,我回到上一页时,样式不会被重新评估。我曾尝试查看DynamicResource
,但我似乎无法获得任何关于如何在Windows Phone上使用它的好参考,或者它是否受支持,或者是否适用于我的用例
欢迎对所涉及的方法提出任何建议
编辑
除非我必须在NavigatedTo
事件中使用以下内容并明确设置它:
control.Style=ThemeLocator.GetThemePanoBackground代码>对该方法不太感兴趣,但这很有效。如果其他人有一些意见,那就太好了
if (ApplicationState.ThemeUpdated)
{
Control.ItemTemplate = null;
Control.ItemTemplate = (DataTemplate)Application.Current.Resources["CustomTemplate"];
}
控件样式与其他绑定一起完全重新调整,效果非常好。Windows Phone主题管理器也做了类似的事情。您可能想看看源代码。