C# 从WPF颜色选择器到矩形笔刷的颜色?
我在我的C# 从WPF颜色选择器到矩形笔刷的颜色?,c#,wpf,xaml,colors,brush,C#,Wpf,Xaml,Colors,Brush,我在我的colorprotype.xaml中有一个Rectangle属性和colorpocker来自Extended WPF Toolkit <Rectangle Name="rect_NewSelect" Grid.Row="0" Style="{DynamicResource ColorInfoRectangle}" Width="60"/> 但放了这个之后,出现了一个错误并告诉我: 无法将System.Windows.Media.Color类型转换为System.Window
colorprotype.xaml中有一个Rectangle
属性和colorpocker
来自Extended WPF Toolkit
<Rectangle Name="rect_NewSelect" Grid.Row="0" Style="{DynamicResource ColorInfoRectangle}" Width="60"/>
但放了这个之后,出现了一个错误并告诉我:
无法将System.Windows.Media.Color类型转换为System.Windows.Media.Brush
那么,如何将“颜色”转换为“画笔”?我的代码中最大的错误是什么
知道这一点:我的项目是用C#和.NET4.6.1编写的。
从图像:ColorPicker=红色组合框和Rectangle=蓝色中,您可以根据拾取的颜色创建新笔刷。SolidColorBrush类具有接受颜色类型的构造函数
rect_NewSelect.Fill = new SolidColorBrush(ClrPcker_Background.SelectedColor);
您可以这样处理颜色选择器的SelectedColorChange
事件:
<xctk:ColorPicker x:Name="ClrPcker_Background" Margin="-36,-389,2,411"
RenderTransformOrigin="0.476,0.4" SelectedColor="Transparent"
SelectedColorChanged="ClrPcker_Background_SelectedColorChanged" DisplayColorAndName="True"
Height="20" VerticalAlignment="Bottom"/>
private void ClrPcker\u Background\u SelectedColorChanged(对象发送方,RoutedPropertyChangedEventArgs e)
{
如果(rect_NewSelect==null | | ClrPcker|u Background==null | |!ClrPcker|u Background.SelectedColor.HasValue)
返回;
rect_NewSelect.Fill=新的SolidColorBrush(ClrPcker_Background.SelectedColor.Value);
}
您应该访问SelectedColor
属性的Value
属性,以获取所选的实际Color
对象。返回错误“无法从System.Windows.Media.Color转换”?改为“System.Windows.Media.Color”,然后尝试rect_NewSelect.Fill=new SolidColorBrush((Color)ClrPcker_Background.SelectedColor);这次它可以工作,但矩形不显示颜色您是我所有问题的救世主!谢谢
rect_NewSelect.Fill = new SolidColorBrush(ClrPcker_Background.SelectedColor);
<xctk:ColorPicker x:Name="ClrPcker_Background" Margin="-36,-389,2,411"
RenderTransformOrigin="0.476,0.4" SelectedColor="Transparent"
SelectedColorChanged="ClrPcker_Background_SelectedColorChanged" DisplayColorAndName="True"
Height="20" VerticalAlignment="Bottom"/>
private void ClrPcker_Background_SelectedColorChanged(object sender, RoutedPropertyChangedEventArgs<Color?> e)
{
if (rect_NewSelect == null || ClrPcker_Background == null || !ClrPcker_Background.SelectedColor.HasValue)
return;
rect_NewSelect.Fill = new SolidColorBrush(ClrPcker_Background.SelectedColor.Value);
}