Xaml 如何在UWP中设置与给定颜色对应的色谱内的圆位置?

Xaml 如何在UWP中设置与给定颜色对应的色谱内的圆位置?,xaml,uwp,uwp-xaml,Xaml,Uwp,Uwp Xaml,我试过的是什么 ColorSpectrum cs=new ColorSpectrum(); cs.width=280; cs.height=280; 在我的例子中,我有这样的颜色#fff5。我想设置与此颜色对应的色谱中的圆圈位置?有人能帮我写代码吗? 我不知道如何实现这一点?您可以通过设置ColorSpectrum.color(圆圈也将相应更改)直接定义当前选择的颜色 如果您想知道如何将哈希颜色值转换为Windows.UI.color类,可以使用CommunityToolkit中的ColorH

我试过的是什么

ColorSpectrum cs=new ColorSpectrum();
cs.width=280;
cs.height=280;
在我的例子中,我有这样的颜色#fff5。我想设置与此颜色对应的色谱中的圆圈位置?有人能帮我写代码吗?
我不知道如何实现这一点?

您可以通过设置
ColorSpectrum.color
(圆圈也将相应更改)直接定义当前选择的颜色

如果您想知道如何将哈希颜色值转换为
Windows.UI.color
类,可以使用
CommunityToolkit
中的
ColorHelper

private void按钮\u单击(对象发送者,路由目标)
{
var color=“#fff5”.ToColor();
颜色光谱。颜色=颜色;
}
如果您想了解
ToColor()
方法是如何实现的,下面是

此外,我测试了
#fff5
的颜色值,这不是很明显,您可以更改颜色(例如
#ffa2f3
)以观察此代码是否生效


更新

彩色光谱
不提供单独控制亮度的选项。您需要创建一个滑块并分别调整
ColorSpectrum.HsvColor.Value

xaml


xaml.cs

private void按钮\u单击(对象发送者,路由目标)
{
var color=“#FF020202”.ToColor();
MyColorPanel.Color=颜色;
var light=MyColorPanel.HsvColor.Z*100;
MySlider.Value=光;
}
private void MyColorPanel_ColorChanged(颜色光谱发送器,颜色更改开发标记args)
{
var hsv=MyColorPanel.HsvColor;
var c=args.NewColor;
var o=args.OldColor;
Debug.WriteLine(MyColorPanel.Color.ToString());
}
私有void ColorPickerSlider\u值已更改(对象发送方,RangeBaseValueChangedEventArgs e)
{
var color=MyColorPanel.HsvColor;
color.Z=(浮动)(e.NewValue/100.0);
MyColorPanel.HsvColor=颜色;
Debug.WriteLine(MyColorPanel.Color.ToString());
}
HsvColor
Color
会相互影响,我们可以通过修改
HsvColor.Z
来改变亮度,并变相改变颜色


谢谢。

如果我像这样设置颜色(#FF020202)。设置颜色后,当我在色谱中单击时,ColorChange事件会产生意外的结果(即args中的NewColor)。请检查您在色谱中单击的位置,RGB颜色中的任何一种都必须是255。那么如何设置这样的颜色35; ff020202在
颜色光谱中
,您还可以看到它没有黑色区域。这里的黑色是使用亮度(值)控制的。将颜色设置为黑色时,表示亮度最小化。之后,当您再次调整
颜色光谱
所选值时,由于亮度没有改变,因此仍然会计算黑色的结果。因此,建议使用完整的
颜色选择器
进行颜色操作。因为
ColorPicker
提供了一个控制亮度的控制栏。我不想使用ColorPicker,因为我需要添加额外的功能。因此我必须将其作为一个单独的组件来编写。还有其他方法吗?