gpt4 book ai didi

WPF 渲染颜色与画笔和控制元素的不透明度不一致

转载 作者:行者123 更新时间:2023-12-04 18:05:18 25 4
gpt4 key购买 nike

考虑以下 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>

它产生以下结果:

enter image description here

从中得出的观察结果是 Line1 和 Line2 的颜色不同。第 3 行在视觉上是正确的,但在颜色输入方面在数字上是错误的。
这是对每行 Textblock 所做的操作。
  • #42000000 的硬编码前景色。这大约是 26% 的不透明度。结果:不正确
  • 刷不透明度为0.26的资源,颜色设置为黑色有效。结果:不正确
  • 产生相同感知输出的更正数字。理论上是 40.6% 的不透明度。
  • 使用 Textblock 的 Opacity 0.26。结果:正确
  • #FFbdbdbd 的硬编码颜色,不涉及透明度。结果:正确

  • 我的问题是:什么/为什么 wpf 以不同的方式呈现?当设计师的示例/屏幕截​​图关注透明度时,这使得很难可靠地进行颜色样式设置。

    请注意,出于好奇,我也在 Windows 商店应用程序上完成了此操作。结果是我所期望的,除了 Line3 之外,所有颜色都相同,它现在会更暗,因为它更不透明。

    最佳答案

    如果有人也偶然发现了这个问题,似乎设置 TextOptions.TextFormattingModeDisplay似乎解决了这个问题(您可以在窗口级别设置它以影响所有内容)。不过,这确实会稍微改变文本渲染布局,因此请考虑到这一点。见 this有关有什么区别的更多信息。

    关于WPF 渲染颜色与画笔和控制元素的不透明度不一致,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28178466/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com