考虑以下xaml。
<Window x:Class="PlayTabControl.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Window.Resources>
<ResourceDictionary>
<Color x:Key="HintColor" A="255" R="0" G="0" B="0"></Color>
<SolidColorBrush x:Key="HintColorBrush" Color="{DynamicResource HintColor}" Opacity="0.26"/>
</ResourceDictionary>
</Window.Resources>
<StackPanel Background="White">
<TextBlock FontSize="28" FontWeight="ExtraBlack"
Text="Hello World, #42000000"
Foreground="#42000000"
HorizontalAlignment="Center"/>
<TextBlock FontSize="28" FontWeight="ExtraBlack"
Foreground="{StaticResource HintColorBrush}"
Text="Hello World, HintColorBrush @ 0.26"
HorizontalAlignment="Center"/>
<TextBlock FontSize="28" FontWeight="ExtraBlack"
Text="Hello World, #68000000"
Foreground="#68000000"
HorizontalAlignment="Center"/>
<TextBlock FontSize="28" FontWeight="ExtraBlack"
Foreground="Black"
Opacity="0.26"
Text="Hello World, Black TB@0.26"
HorizontalAlignment="Center"/>
<TextBlock FontSize="28" FontWeight="ExtraBlack"
Foreground="#FFbdbdbd"
Text="Hello World, #FFbdbdbd"
HorizontalAlignment="Center"/>
</StackPanel>
</Window>
它产生以下结果:
从中得出的观察结果是Line1和Line2具有不同的颜色。第3行在视觉上是正确的,但在颜色输入方面在数值上是不正确的。 以下是Textblock的每一行。
我的问题是:什么/为什么wpf以不同的方式渲染?当设计师的样本/屏幕截图关注透明度时,这使得难以可靠地进行颜色样式。
请注意,出于好奇,我也在Windows商店应用上完成了这项工作。结果就是我所期望的,除了Line3之外所有颜色都是相同的,现在它们会变得更暗,因为它更不透明。
答案 0 :(得分:0)
如果也有人偶然发现此问题,则似乎将TextOptions.TextFormattingMode设置为Display似乎可以解决此问题(您可以在Window级别设置它,以便影响所有内容)。但这确实会稍微改变文本渲染的布局,因此请考虑到这一点。有关有什么区别,请参见this。