我必须在我的WPF应用程序中创建一个颜色选择器.当我点击任何颜色时,该颜色的代码应该出现在文本框中.我google了很多,但发现没有任何符合我的要求.如果您以前这样做,请分享.
Sea*_*gan 40
正如Jodha所说,你应该使用WpfToolkit Extended中的拾色器控件.实现颜色选择器控件很简单,只需执行以下操作:
把它放在你的Window对象中:
xmlns:xctk="http://schemas.xceed.com/wpf/xaml/toolkit"
Run Code Online (Sandbox Code Playgroud)
这就是你想要的颜色选择器.
<xctk:ColorPicker Name="ClrPcker_Background" SelectedColorChanged="ClrPcker_Background_SelectedColorChanged"></xctk:ColorPicker>
Run Code Online (Sandbox Code Playgroud)
然后,您所要做的就是使用SelectedColorChanged事件来更改文本框中的文本,如下所示:
private void ClrPcker_Background_SelectedColorChanged(object sender, RoutedPropertyChangedEventArgs<Color> e)
{
TextBox.Text = "#" + ClrPcker_Background.SelectedColor.R.ToString() + ClrPcker_Background.SelectedColor.G.ToString() + ClrPcker_Background.SelectedColor.B.ToString();
}
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助!
小智 8
最简单的方法是使用WinForms 中使用的ColorDialog。
System.Windows.Forms.ColorDialog colorDialog = new System.Windows.Forms.ColorDialog();
if (colorDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
DrawBallColorBtn.Background = new SolidColorBrush(Color.FromArgb(colorDialog.Color.A, colorDialog.Color.R, colorDialog.Color.G, colorDialog.Color.B));
_drawBallColor = colorDialog.Color.Name.ToLower();
}
Run Code Online (Sandbox Code Playgroud)
如果您的目标是 .NetCore 3.x,请将以下内容添加到 .csproj 文件中
<PropertyGroup>
<TargetFramework>netcoreapp3.0</TargetFramework>
<UseWPF>true</UseWPF>
<UseWindowsForms>true</UseWindowsForms>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)