我正在研究win8手机项目
每当我点击一个按钮,按钮背景变为手机强调色或文本框时,边框颜色变为手机强调色或键盘按钮的颜色
更改手机强调色...
我试图覆盖application.resources < solidColorBrush x:Key="PhoneAccentBrush" color="white" />
中的PhoneAccentBrush,但它没有用
有没有办法改变我的应用程序中所有元素的手机强调颜色?
答案 0 :(得分:5)
您可以更改应用中所有按钮控件的默认样式,使其在{StaticResource PhoneAccentBrush}
状态下不使用Pressed
。
打开Blend并创建一个简单的WP8项目,在其中放入Button
,然后获取模板的副本(右键单击按钮并编辑副本)。请参阅Jeff Wilcox's blog for a step-by-step description of the process。
然后,您可以将模板粘贴到App.xaml
。如果删除x:Key
,它将成为该控件的默认样式。
或者,您可以查看this StackOverflow question about overriding the theme everywhere。
答案 1 :(得分:3)
如果不使用混合复制整个样式,您只需覆盖默认主题:
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.ThemeDictionaries>
<ResourceDictionary x:Key="Default">
<!-- Button pressed color -->
<SolidColorBrush x:Key="ButtonPressedBackgroundThemeBrush" Color="OrangeRed"/>
</ResourceDictionary>
</ResourceDictionary.ThemeDictionaries>
</ResourceDictionary>
</Application.Resources>
至少用wp8.1进行了测试,无论如何我发现ButtonPressedBackgroundThemeBrush
有混合物;)
答案 2 :(得分:0)
private void btnSignIn_Click(object sender, RoutedEventArgs e)
{
btnSignIn.Background = GetColorFromHexa("#59BD56");
}
public SolidColorBrush GetColorFromHexa(string hexaColor)
{
byte R = Convert.ToByte(hexaColor.Substring(1, 2), 16);
byte G = Convert.ToByte(hexaColor.Substring(3, 2), 16);
byte B = Convert.ToByte(hexaColor.Substring(5, 2), 16);
SolidColorBrush scb = new SolidColorBrush(Color.FromArgb(0xFF, R, G, B));
return scb;
}