修改手机主题背景和强调色设置后,UI显示发生改变的问题
来源:互联网 发布:淘宝买沙发靠谱吗 编辑:程序博客网 时间:2024/05/01 04:06
模拟器默认的手机背景色为深色,如果我们创建如下的Pivot枢轴控件这样定义:
<controls:Pivot Height="696" Name="pivotStockListPage" LoadedPivotItem="pivotStockListPage_LoadedPivotItem">
<controls:Pivot.Title>
<TextBlock x:Name="PageTitle" Text="股票列表" Margin="0,0,0,0" Style="{StaticResource PhoneTextTitle1Style}" Height="96" TextAlignment="Left"Foreground="White"/>
</controls:Pivot.Title>
<controls:Pivot.HeaderTemplate>
<DataTemplate>
<TextBlock Foreground="White" Margin="0,10,0,0" Text="{Binding Path=PivotItemHeaderText}" FontSize="{StaticResource PhoneFontSizeExtraLarge}" Height="60" Width="{Binding Path=PivotItemHeaderWidth}">
</TextBlock>
</DataTemplate>
</controls:Pivot.HeaderTemplate>
……
</controls:Pivot>
会发现显示时文字的颜色为白色,如果没有定义前景色Foreground="White",实际显示效果还是白色。
但是,一旦把手机主题背景颜色调整为浅色,你会发现这个时候这两个TextBlock的文字都看不见了。要解决这个问题,可以通过采用系统主题强调色,或者整个界面的所有前景色和背景色自行指定,防止因为系统主题设置的改变而产生不和谐的UI。
对于菜单,可以直接设置背景色和字体颜色为系统默认的效果:<shell:ApplicationBar IsVisible="True" IsMenuEnabled="True" BackgroundColor="#FF212021" ForegroundColor="White">
在实际测试时,建议多修改一下系统主题,然后测试显示效果。测试时要全面,比如应该包含应用程序列表里面的图标效果和主屏幕上的背景效果。比如掌中新浪,将强调色设置成红色时图标(本身有红色)就显示不清楚了。
几个系统主题资源:
SetValue(Microsoft.Phone.Shell.SystemTray.ForegroundColorProperty, Application.Current.Resources["PhoneAccentColor"]); :Application.Current.Resources["PhoneAccentColor"] 为主题设置里面的强调色。
Style="{StaticResource PhoneTextAccentStyle}" :主题样式资源PhoneTextAccentStyle应用字体 (PhoneFontFamilySemiBold)、字体大小 (PhoneFontSizeNormal) 和前景 (PhoneAccentBrush)。
如何确定主题背景?
Visibility darkBackgroundVisibility = (Visibility)Application.Current.Resources["PhoneDarkThemeVisibility"];
if (darkBackgroundVisibility == Visibility.Visible)
{
//深
}
else
{
//浅
}
如何确定主题强调色(MSDN上称为“个性色”)?SDK7.1上目前有10种强调色:
下表列出了 10 种标准个性色及其以红色、绿色、蓝色 (RGB) 值和十六进制 (Hex) 值表示的相应颜色值。
个性色
RGB
Hex
示例
蓝色
27,161,226
#FF1BA1E2
褐色
160,80,0
#FFA05000
绿色
51,153,51
#FF339933
浅绿色(黄绿色)
162,193,57
#FFA2C139
洋红
216,0,115
#FFD80073
芒果色(橙色)
240,150,9
#FFF09609
粉红
230,113,184
#FFE671B8
紫色
162,0,255
#FFA200FF
红色
229,20,0
#FFE51400
青色(铬绿)
0,171,169
#FF00ABA9
浅绿色和洋红个性色的值已在 Windows Phone OS 7.1 中更改。
在 Windows Phone OS 7.0 中,浅绿色和洋红个性色分别为#FF8CBF26 和#FFFF0097。
在 Windows Phone OS 7.1 中,浅绿色和洋红个性色分别为#FFA2C139 和#FFD80073。
Color currentAccentColorHex = (Color)Application.Current.Resources["PhoneAccentColor"];
switch (currentAccentColorHex.ToString())
{
case "#FF1BA1E2": 蓝
case "#FFA05000": 褐
case "#FF339933": 绿
case "#FFE671B8": 粉红
case "#FFA200FF": 紫色
case "#FFE51400":红色
case "#FF00ABA9": 青(深绿)
case "#FF8CBF26": 黄绿
case "#FFA2C139"(SDK7.1): 黄绿
case "#FFFF0097": 洋红
case "#FFD80073"(SDK7.1): 洋红
case "#FFF09609"(SDK7.1): 橙
default: 其他(移动运营商和硬件制造商定制)
}
Windows Phone 中提供的主题属性:
- 画笔资源
颜色资源
字体名称
粗细
字体大小
文本样式
主题可见性和不透明度
- 修改手机主题背景和强调色设置后,UI显示发生改变的问题
- Android开发笔记之主题背景的修改(设置Theme.NoTitleBar后Activity背景变成黑色)
- 修改myeclipse的主题背景
- ListView 的Item 点击后改变背景的bug问题
- Bootstrap navbar 背景颜色、背景图和字体颜色修改,颜色修改不显示的问题
- android点击Button后,buttton的背景和颜色改变
- 设置三个Slider控件,管理背景颜色,任意改变一个控件,背景颜色都会发生改变
- 在使用Java的Properties时,修改数值后会发生顺序的改变
- 设置border后div发生变化的问题
- select标签添加multiple属性后,页面呈现的样式发生改变,如何修改
- AppCompatActivity和Activity的主题设置问题
- netterm访问linux时字体和背景颜色随目录发生改变的问题解决
- 如何修改myeclipse的主题背景
- 兔子--修改Android Studio的主题背景
- Eclipse 主题 背景 颜色 的设置
- eclipse设置有颜色的主题背景
- 有关map压入对象后,对象的数据成员发生改变的问题
- iOS NavigationBar 导航栏背景颜色和避免因为设置属性translucent引起的frame改变问题
- java编程开发性能优化
- Oracle 归档与非归档的切换
- August 23
- 将PowerPCB 中的pcb文件导入到Protel中使用
- 十六进制CString转__int64
- 修改手机主题背景和强调色设置后,UI显示发生改变的问题
- 产品需求背后的用户动机
- hdu 4391 线段树
- schedule和scheduleupdate
- 最有价值的编程忠告(来自贝尔实验室Plan 9操作系统的创始人Rob Pike)
- 批量导出大数据量到EXCEL
- 数据库设计范式
- memset用法详解
- ArcGIS Server9.3创建WMS