我创建了一个页面。当模拟器的主题更改为浅色时,我想更改文本框的背景。更改主题时字母不可见。有什么解决方案吗?
问问题
450 次
3 回答
1
我假设您指的是TextBlock
而不是TextBox
(因为后者自动具有样式支持)。
永远不要声明TextBlock
没有Style
属性的 a,例如Style={StaticResource PhoneTextNormalStyle}
. 可以在 MSDN 上找到可用样式的完整列表:Windows Phone 的主题资源
同样相关的是:如何:为 Windows Phone 应用主题资源
注意:由于 Mango 的设计方式,更改主题后返回到您的应用程序将不会应用新主题。您需要重新启动应用程序才能看到更改后的主题。
更新
根据您的屏幕截图,您有两种选择:
- Reskin(Blend 中的“编辑模板”)用于重新定义样式的每个控件,其中各种与颜色相关的属性都是硬编码的
- 在白色主题中使用替代的、较浅的背景图像以提高对比度。我在博客中介绍了如何定义主题感知资源(并且在其他 SO 问题中也提到过)。
简而言之,您可以提交主题或强制它保持您想要的方式。
于 2012-06-19T01:09:44.150 回答
1
如果您在 Visual Studio 中使用默认的 TextBox 控件,则它完全可以识别主题。如果您自己设置了颜色,那么您需要在后面的代码中执行主题感知更改。
有关更多信息,请参阅以下内容:-
http://www.developer.nokia.com/Community/Wiki/ThemeawareWindowsPhoneapplication
于 2012-06-18T12:56:37.373 回答
0
我们可以为我们的应用程序设置一个默认主题。当我们登录我们的应用程序时,手机主题将更改为合适的主题,当我们注销时,将更改回原来的链接。
于 2012-07-09T13:08:42.147 回答