文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

C#中WPF颜色对话框控件的实现

2024-04-02 19:55

关注

在 C# WPF开发中颜色对话框控件(ColorDialog)用于对界面中的背景、文字…(拥有颜色属性的所有控件)设置颜色,例如设置标签控件的背景色。

颜色对话框的运行效果如下图所示:

标签背景色设置后如下:

xml代码:

<Window x:Class="WpfApp.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:WpfApp"
        Icon="https://demosc.chinaz.net/Files/pic/iconsico/8254/e9.ico"
        mc:Ignorable="d"
        Title="TestImage" Height="600" Width="900" WindowStartupLocation="CenterScreen">
    <Window.Resources>
        <ResourceDictionary x:Uid="CommandDict">
            <RoutedCommand x:Uid="SetBackGround" x:Key="SetBackGround"/>
        </ResourceDictionary>
    </Window.Resources>

    <Window.CommandBindings>
        <CommandBinding x:Uid="SetBackGroundParameter" Command="{StaticResource SetBackGround}" Executed="Pic_BackGround_Click" />
    </Window.CommandBindings>

    <Window.InputBindings>
        <KeyBinding x:Uid="AddKeyBinding" Key="O" Modifiers="Ctrl+Shift" Command="{StaticResource SetBackGround}"/>
    </Window.InputBindings>
    <Grid>
        <DockPanel x:Name="myDockPanel">
            <Menu DockPanel.Dock="Top" Height="30" Margin="0,0,0.333,0" VerticalAlignment="Top" HorizontalAlignment="Left">
                <MenuItem Header="文件"  Height="30" Background="Violet">
                    <MenuItem Header="打开" InputGestureText="Ctrl+0">
                        <MenuItem.Icon>
                            <Image Source="https://demosc.chinaz.net/Files/pic/iconsico/7595/j14.ico"/>
                        </MenuItem.Icon>
                    </MenuItem>
                    <MenuItem Header="保存" InputGestureText="Ctrl+S">
                        <MenuItem.Icon>
                            <Image Source="https://demosc.chinaz.net/Files/pic/iconsico/7595/j13.ico"/>
                        </MenuItem.Icon>
                    </MenuItem>
                    <MenuItem Header="另存为" InputGestureText="F12">
                        <MenuItem.Icon>
                            <Image Source="https://demosc.chinaz.net/Files/pic/iconsico/7595/j12.ico"/>
                        </MenuItem.Icon>
                    </MenuItem>
                    <Separator/>
                    <MenuItem Header="打印预览">
                        <MenuItem.Icon>
                            <Image Source="https://demosc.chinaz.net/Files/pic/iconsico/7595/j11.ico"/>
                        </MenuItem.Icon>
                    </MenuItem>
                    <MenuItem Header="打印" InputGestureText="Ctrl+P">
                        <MenuItem.Icon>
                            <Image Source="https://demosc.chinaz.net/Files/pic/iconsico/7595/j10.ico"/>
                        </MenuItem.Icon>
                    </MenuItem>
                    <MenuItem Header="退出" InputGestureText="F4">
                        <MenuItem.Icon>
                            <Image Source="https://demosc.chinaz.net/Files/pic/iconsico/7595/j9.ico"/>
                        </MenuItem.Icon>
                    </MenuItem>
                </MenuItem>
                <MenuItem Header="编辑" Height="30" Background="Aqua">
                    <MenuItem Header="背景图片" InputGestureText="Ctrl + Shift + O" Click="Pic_BackGround_Click">
                        <MenuItem.Icon>
                            <Image Source="https://demosc.chinaz.net/Files/pic/iconsico/8255/b8.ico"/>
                        </MenuItem.Icon>
                    </MenuItem>
                    <MenuItem Header="恢复" InputGestureText="Ctrl+Y">
                        <MenuItem.Icon>
                            <Image Source="https://demosc.chinaz.net/Files/pic/iconsico/8255/b1.ico"/>
                        </MenuItem.Icon>
                    </MenuItem>
                    <MenuItem Header="重做" InputGestureText="Ctrl+Z">
                        <MenuItem.Icon>
                            <Image Source="https://demosc.chinaz.net/Files/pic/iconsico/8255/b2.ico"/>
                        </MenuItem.Icon>
                    </MenuItem>
                    <Separator/>
                    <MenuItem Header="复制" InputGestureText="Ctrl+C">
                        <MenuItem.Icon>
                            <Image Source="https://demosc.chinaz.net/Files/pic/iconsico/8255/b4.ico"/>
                        </MenuItem.Icon>
                    </MenuItem>
                    <MenuItem Header="粘贴" InputGestureText="Ctrl+V">
                        <MenuItem.Icon>
                            <Image Source="https://demosc.chinaz.net/Files/pic/iconsico/8255/b5.ico"/>
                        </MenuItem.Icon>
                    </MenuItem>
                    <Separator/>
                    <MenuItem Header="字体">
                        <MenuItem Header="黑体" InputGestureText="Ctrl+B" IsCheckable="True"/>
                        <MenuItem Header="斜体" InputGestureText="Ctrl+I" IsCheckable="True"/>
                        <Separator/>
                        <MenuItem Header="增大字体" IsCheckable="True"/>
                        <MenuItem Header="缩小字体" IsCheckable="True"/>
                    </MenuItem>
                </MenuItem>
            </Menu>
            <Label x:Name="colorLabel" DockPanel.Dock="Left" Width="200" Height="100" Background="AntiqueWhite" MouseDoubleClick="ColorLabel_MouseDoubleClick"></Label>
        </DockPanel>
    </Grid>
</Window>

c#代码:

using System;
using System.Windows;
using System.Windows.Media;
using System.Windows.Forms;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
using System.Windows.Controls;
using System.Windows.Forms;

namespace WpfApp
{
    /// <summary>
    /// MainWindow.xaml 的交互逻辑
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        private void Pic_BackGround_Click(object sender, RoutedEventArgs e)
        {
            OpenFileDialog pic = new OpenFileDialog();
            pic.Title = "设置背景图片";
            pic.Filter = "图形文件(*.jpg)|*.jpg";
            if (pic.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                ImageBrush p = new ImageBrush(new BitmapImage(new Uri(pic.FileName, UriKind.Absolute)));
                Console.WriteLine(pic.FileName);
                myDockPanel.Background = p;
            }
        }

        private void ColorLabel_MouseDoubleClick(object sender, System.Windows.Input.MouseButtonEventArgs e)
        {
            ColorDialog cl = new ColorDialog();
            if(cl.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                colorLabel.Background = new SolidColorBrush(Color.FromArgb(cl.Color.A,cl.Color.R,cl.Color.G,cl.Color.B));
            }
        }
    }
}

到此这篇关于C#中WPF颜色对话框控件的实现的文章就介绍到这了,更多相关C# 颜色对话框控件内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯