1

我正在处理win8手机项目,每当我单击按钮时,按钮背景会变为手机强调色或在文本框上边框颜色会变为手机强调色或键盘按钮的颜色会变为手机强调色......我试图覆盖 application.resources 中的 PhoneAccentBrush< solidColorBrush x:Key="PhoneAccentBrush" color="white" />但它不起作用有什么方法可以更改我的应用程序中所有元素的 Phone Accent Color 吗?

4

3 回答 3

5

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

打开 Blend 并创建一个简单的 WP8 项目,放入Button其中,然后获取模板的副本(右键单击按钮并编辑副本)。请参阅Jeff Wilcox 的博客,了解该过程的分步说明

然后,您可以将模板粘贴到您的App.xaml. 如果您删除x:Key它,它将成为该控件的默认样式。

或者,您可以查看有关在任何地方覆盖主题的 StackOverflow 问题

于 2013-03-14T09:55:14.873 回答
3

无需使用 blend 复制整个样式,您可以简单地覆盖默认主题:

<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用 blend 发现了;)

于 2014-12-02T09:55:11.993 回答
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;
    }
于 2014-08-19T07:12:32.913 回答