xaml-如何更改应用程序中所有文本的颜色
我正在开发一个windows phone 8应用程序,默认为黑色背景和白色文本颜色。我想在应用程序的每个页面上更改这些颜色。如何以最简单的方式实现这一点 我将以下样式添加到我的App.xaml文件中,以查看它是否会更改单个页面中所有文本的颜色:xaml-如何更改应用程序中所有文本的颜色,xaml,windows-phone-8,Xaml,Windows Phone 8,我正在开发一个windows phone 8应用程序,默认为黑色背景和白色文本颜色。我想在应用程序的每个页面上更改这些颜色。如何以最简单的方式实现这一点 我将以下样式添加到我的App.xaml文件中,以查看它是否会更改单个页面中所有文本的颜色: <Style x:Key="DefaultPage" TargetType="phone:PhoneApplicationPage"> <Setter Property="FontFamily" Value="{Stat
<Style x:Key="DefaultPage" TargetType="phone:PhoneApplicationPage">
<Setter Property="FontFamily" Value="{StaticResource PhoneFontFamilyNormal}"/>
<Setter Property="FontSize" Value="{StaticResource PhoneFontSizeNormal}"/>
<Setter Property="Foreground" Value="Red"/>
<Setter Property="SupportedOrientations" Value="Portrait"/>
<Setter Property="Orientation" Value="Portrait"/>
<Setter Property="shell:SystemTray.IsVisible" Value="True"/>
</Style>
但它所做的是,它将所有文本的颜色更改为红色,除了那些具有预定义样式(如标题和应用程序名称)的文本
非常感谢您提供的任何帮助或信息。目前没有Visual Studio。我建议覆盖系统资源。 诸如此类:
((SolidColorBrush)Resources["PhoneBackgroundBrush"]).Color = Color.FromArgb(0xFF, 0x00, 0x00, 0x00);
((SolidColorBrush)Resources["PhoneTextBoxBrush"]).Color = Color.FromArgb(0xBF, 0xFF, 0xFF, 0xFF);
((SolidColorBrush)Resources["PhoneTextBoxForegroundBrush"]).Color = Color.FromArgb(0xFF, 0x00, 0x00, 0x00);
如果您有这样定义的应用程序标题:
<StackPanel x:Name="TitlePanel" Grid.Row="0" Margin="12,17,0,28">
<TextBlock x:Name="ApplicationTitle" Text="APP NAME"
Style="{StaticResource PhoneTextNormalStyle}"/>
<TextBlock x:Name="PageTitle" Text="Page Title" Margin="9,-7,0,0" Style="{StaticResource PhoneTextTitle1Style}"/>
</StackPanel>
然后您应该将新样式应用于TextBlock
<StackPanel x:Name="TitlePanel" Grid.Row="0" Margin="12,17,0,28">
<TextBlock x:Name="ApplicationTitle"
Text="APP NAME"
Style="{StaticResource RedPhoneTextNormalStyle}"/>
<TextBlock x:Name="PageTitle" Text="Page Title" Margin="9,-7,0,0" Style="{StaticResource PhoneTextTitle1Style}"/>
</StackPanel>
最简单的方法是使用
文本块
和文本框
元素的前台
属性。如果元素是预定义的(在XAML中是预定义的),那么您所要做的就是为它指定一个名称,VisualStudio将自动为它创建一个对象。假设元素的名称是XAML文件中的textBlock
。你所要做的就是写一行:
textBlock.Foreground=new System.Drawing.SolidBrush(System.Drawing.Color.Red)代码>
,如果要使用预定义的笔刷或
textBlock.Foreground = (Brush) (new System.Windows.Media.BrushConverter()).ConvertFromString("#FF0000")
,如果要使用您选择的十六进制代码的画笔颜色。这将有助于将所需的文本颜色设置为所需的颜色
此外,您可以在
中定义
,如下所示:
<StackPanel x:Name="TitlePanel" Grid.Row="0" Margin="12,17,0,28">
<TextBlock x:Name="ApplicationTitle" Text="APP NAME"
Style="{StaticResource PhoneTextNormalStyle}"/>
<TextBlock x:Name="PageTitle" Text="Page Title" Margin="9,-7,0,0" Style="{StaticResource PhoneTextTitle1Style}"/>
</StackPanel>
然后使用SolidColorBrush
,使用以下简单的工具:
textBlock.Text=Red
,位于代码中的任意位置
希望能有帮助。你用这个几乎解决了问题。我从来没有听说过“简单的绝对方式”(我可能错了,我只是个新手)。因为只要有定义颜色的“自定义样式”,并且该样式应用于靠近对象的一个容器上,然后应用于常规样式,它就会覆盖该样式。因此,部分解决方案可能是覆盖“通用windows phone样式”使用的系统资源,并将其与基于最初使用的样式的样式相结合。(基本上结合了您已经得到的两个答案)+使用您当前的解决方案