C#中WPF顏色對話框控件的實現(xiàn)
在 C# WPF開發(fā)中顏色對話框控件(ColorDialog)用于對界面中的背景、文字…(擁有顏色屬性的所有控件)設(shè)置顏色,例如設(shè)置標(biāo)簽控件的背景色。
顏色對話框的運行效果如下圖所示:
標(biāo)簽背景色設(shè)置后如下:
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="打印預(yù)覽"> <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="恢復(fù)" 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="復(fù)制" 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 = "設(shè)置背景圖片"; 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)); } } } }
到此這篇關(guān)于C#中WPF顏色對話框控件的實現(xiàn)的文章就介紹到這了,更多相關(guān)C# 顏色對話框控件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Unity的IPreprocessBuild實用案例深入解析
這篇文章主要為大家介紹了Unity的IPreprocessBuild實用案例深入解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-05-05Winform之TextBox輸入日期格式驗證yyyy-mm-dd
Winform之TextBox輸入日期格式驗證yyyy-mm-dd的實例與正則表達式,需要的朋友可以參考一下2013-02-02c#和avascript加解密之間的互轉(zhuǎn)代碼分享
這篇文章主要介紹了c#和Javascript間互轉(zhuǎn)的Xxtea加解密代碼,需要的朋友可以參考下2014-02-02在Form_Load里面調(diào)用Focus無效的解決方法
在調(diào)用Form_Load的時候,F(xiàn)orm其實還沒有進入展示階段,自然Focus()調(diào)用也就沒效果了。2013-02-02