在WPF中计算选择画笔颜色

Set*_*ker 8 wpf textbox brush colors

我注意到在将wpf中的文本框选择设置为红色时,并使用颜色选择器验证颜色,颜色渐渐变为#FF9999.

我有一个特定的颜色,我的客户需要选择画笔.有没有办法计算我应该将SelectionBrush设置为什么颜色,所以当选择文本时,会显示确切的颜色?

目前我需要选择画笔为#6599D1,但一旦设置,颜色为#C1D6ED.

如何计算起始颜色,以便最终颜色是我需要的?

H.B*_*.B. 2

好问题,但我认为这是不可能的。如果 ControlTemplate 内有一些覆盖,则无法制定一个函数来计算较暗的颜色,然后该颜色最终将成为预期的颜色。

例如,当您输入红色时,即:255,0,0您得到255,153,153,现在需要应用于初始颜色的函数需要使红色变暗,这当然只能在红色通道中完成,因为绿色和蓝色已经为零。然而,问题不在于红色通道(最终为 255,因此不受影响),因此对其进行任何更改只会进一步降低颜色饱和度,而不是使其变暗。

编辑:为了使其更数学化,选择的透明度应用的函数是:

f(x) = 0.4x + 153

如果您将其应用于颜色的所有通道,您会发现情况确实如此。现在我们如何获得我们想要的值呢?很简单,我们反转函数,就是这样:

f^(-1)(x) = -2.5(153.0 - x)

伟大的!现在让我们将其应用到您的颜色上:

右:-130.0
右:0
右:140

嗯,我想毕竟不是那么好。

这个负值正是这并不总是可能的原因,具有以下成分的每种颜色153都是不可逆的。