标签:C#,WPF,颜色对话框
在 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));
}
}
}
}
来源:https://blog.csdn.net/m0_51460728/article/details/122274209


猜你喜欢
- 目录SpringBoot整合OpenApiOpenAPI依赖编写配置类改造优化OpenAPI常用注解介绍实体类controller类演示网上
- Unity如何实现换装系统,供大家参考,具体内容如下1.创建Sprite Library Asset2.添加新目录Label 可以理解为标签
- 最近做项目中涉及到了图片相关功能 ,在使用安卓6.0手机及7.1手机拍照时,遇到了因权限及文件管理导致程序崩溃等问题。 刚好把功能
- 本文实例讲述了JAVA+Struts2获取服务器地址的方法。分享给大家供大家参考。具体实现方法如下:HttpServletRequest r
- SpringBoot整合第三方技术一、整合Junit新建一个SpringBoot项目使用@SpringBootTest标签在test测试包内
- 购物车项目,业务需要实现了一个购物车的项目,简单的了解下实现逻辑:数据计算等是在Adapter中计算出来的,通过在Adapter中计算出来的
- 有时您可能想限制可以在参数化类型中用作类型参数的类型。 例如,对数字进行操作的方法可能只希望接受Number或其子类的实例。 这就是有界类型
- 本文实例为大家分享了Android实现欢迎滑动页面的具体代码,供大家参考,具体内容如下一、效果图二、源码1.activity_welcome
- 本文实例讲述了dotNet中的反射用法。分享给大家供大家参考,具体如下:参考MSDN:ms-help://MS.VSCC.2003/MS.M
- Java是垃圾回收语言的一种,其优点是开发者无需特意管理内存分配,降低了应用由于局部故障(segmentation fault)导致崩溃,同
- 查看代码执行mybatis的sql语句File–>Settings–>Plugins 搜索 MyBatis Log Plugin
- 如下所示:String beginDate="1328007600000";SimpleDateFormat sdf=n
- 浅谈先来说一下“this指针”:C++中通过引入this指针解决该问题,暨:C++编译器给每个“非静态的成员函数”增加了一个隐藏的指针参数,
- 项目代码:https://github.com/bruceq/supermarket项目结构:依赖关系:common:公共层,无依赖dao:
- 因为项目中之前的模块用的分页插件是Datatables,很方便,但是新做的模块表格中的布局有变化,Datatables插件满足不了了。为了风
- 演示代码如下:package swt_jface.demo11; import org.eclipse.swt.SWT; import or
- 有参数传递的地方都少不了参数校验。在web开发中,前端
- dom4j是一个非常优秀的Java XML API,具有性能优异、功能强大和极端易用使用的特点,同时它也是一个开放源工具。可以在这个地址ht
- 讲完了inbound事件和outbound事件的传输流程, 这一小节剖析异常事件的传输流程传播异常事件简单的异常处理的场景@Override
- AES类时微软MSDN中最常用的加密类,微软官网也有例子,参考链接:https://docs.microsoft.com/zh-cn/dot