2013-03-14 67 views
1

我正在开发win8手机项目 每当我点击一个按钮时,按钮背景变为手机的重音颜色或文本框边框颜色变为手机的重音颜色或键盘按钮的颜色 更改为电话重音颜色... 我试图覆盖PhoneAccentBrush在application.resources < solidColorBrush x:Key="PhoneAccentBrush" color="white" />,但它没有工作 有没有办法改变我的应用程序中的所有元素的电话口音颜色?windows phone 8 xaml设置点击按钮的颜色

回答

5

您可以更改应用中所有按钮控件的默认样式,使其不会在Pressed状态下使用{StaticResource PhoneAccentBrush}

打开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

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; 
    } 
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与交融;)