WPF实现简单的颜色调色板功能

本文介绍了如何在WPF中不依赖System.Windows.Forms,而是利用Canvas等控件手动创建一个简单的颜色调色板。虽然效果可能不如Winform的ColorDialog,但通过此方法可以自定义更多的功能,如调整颜色数值和添加缩放参数。目前实现的功能有限,未来可考虑增加RGB数值绑定等功能。
摘要由CSDN通过智能技术生成

Winform有自带的ColorDialog功能,WPF可以通过引用System.Windows.Forms的方式来创建调色板,在这里仅使用Canvas等控件来实现简单的调色板。效果如下:

gif录制的比较渣,实际效果图:

1、窗体xaml

<Window x:Class="ColorSelectorDemo.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:ColorSelectorDemo"
        mc:Ignorable="d" ResizeMode="NoResize" WindowStartupLocation="CenterScreen"
        Title="ColorSelector" Height="215" Width="260">
    <Grid Margin="10">
        <Grid.RowDefinitions>
            <RowDefinition></RowDefinition>
            <RowDefinition Height="20"></RowDefinition>
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition></ColumnDefinition>
            <ColumnDefinition Width="auto"></ColumnDefinition>
        </Grid.ColumnDefinitions>
        <!--调色板-->
        <Border Grid.Column="0" Grid.Row="0" BorderBrush="#d3d3d3" BorderThickness="1" Width="197" Height="135" HorizontalAlignment="Left">
            <Canvas>
                <Image x:Name="imgColor" Stretch="Fill" Width="195" Height="133" MouseDown="imgColor_MouseDown" MouseUp="imgColor_MouseUp"></Image>
                <Ellipse x:Name="ellColor" Canvas.Left="-4" Canvas.Bottom="-4" Width="8" Height="8" Fill="Transparent" Opacity="0.5" Stroke="White" StrokeThickness="1"/>
            </Canvas>
        </Border>
        <!--颜色选择器-->
        <Border Grid.Column="1" BorderBrush="#d3d3d3" BorderThickness="1" Width="20" Height="135">
            <Canvas>
                <Image x:Name="imgColorSelector" Stretch="Fill" Width="18" Height="133" MouseDown="imgColorSelector_MouseDown" MouseUp="imgColorSelector_MouseUp"></Image>
                <Rectangle x:Name=
  • 8
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

RunnerDNA

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值