同系列文章:
演示程序界面:
源代码及工程下载:
演示程序源代码:
MainWindow.xaml
<Window x:Class="Demo.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:sp="clr-namespace:Splash.WPF;assembly=TextBoxPlus" Title="文本框显式信息提示演示" FontSize="16" SizeToContent="WidthAndHeight" WindowStartupLocation="CenterScreen" Icon="/Demo;component/gardenia.ico"> <Grid Margin="20"> <Grid.RowDefinitions> <RowDefinition /> <RowDefinition /> <RowDefinition /> </Grid.RowDefinitions> <Grid Grid.Row="0"> <Grid> <Grid.RowDefinitions> <RowDefinition /> <RowDefinition /> </Grid.RowDefinitions> <Grid.ColumnDefinitions> <ColumnDefinition /> <ColumnDefinition Width="64" /> </Grid.ColumnDefinitions> <TextBlock Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2" Text="标准控件" /> <TextBox Name="textBox1" Grid.Row="1" Grid.Column="0" Width="400" /> <Button Name="button1" Grid.Row="1" Grid.Column="1" Content="清空" Height="32" Click="button1_Click" /> </Grid> </Grid> <Grid Grid.Row="1" Margin="0,20,0,0"> <Grid> <Grid.RowDefinitions> <RowDefinition /> <RowDefinition /> </Grid.RowDefinitions> <Grid.ColumnDefinitions> <ColumnDefinition /> <ColumnDefinition Width="64" /> </Grid.ColumnDefinitions> <TextBlock Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2" Text="增强控件" /> <sp:TextBoxPlus x:Name="textBox2" Grid.Row="1" Grid.Column="0" Width="400" ExplicitToolTip="请输入关键字!" /> <Button Name="button2" Grid.Row="1" Grid.Column="1" Content="清空" Height="32" Click="button2_Click" /> </Grid> </Grid> <Grid Grid.Row="2"> <Grid.ColumnDefinitions> <ColumnDefinition /> <ColumnDefinition /> </Grid.ColumnDefinitions> <ComboBox Name="comboBoxToolTipBrush" Grid.Column="0" Height="32" Margin="10" IsReadOnly="True" ItemsSource="{Binding}" DisplayMemberPath="Name" Loaded="comboBoxToolTipBrush_Loaded" SelectionChanged="comboBoxToolTipBrush_SelectionChanged" ToolTip="改变提示内容颜色!" /> <Button Name="buttonNormalBrush" Grid.Column="1" Content="改变正常文本颜色" Margin="10" Height="32" Click="buttonNormalBrush_Click" Loaded="buttonNormalBrush_Loaded" /> </Grid> </Grid> </Window>
MainWindow.xaml.cs
using System.Windows; using System.Windows.Media; using Splash.WPF; using System.Windows.Controls; using System; namespace Demo { /// <summary> /// MainWindow.xaml 的交互逻辑 /// </summary> public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); } private void button1_Click(object sender, RoutedEventArgs e) { textBox1.Clear(); } private void button2_Click(object sender, RoutedEventArgs e) { textBox2.Clear(); } // 查找“DarkGray”画笔 public Boolean FindDarkGrayBrush(BrushItem item) { if (item.Name.Equals("DarkGray")) return true; else return false; } private void comboBoxToolTipBrush_Loaded(object sender, RoutedEventArgs e) { BrushItem[] Source = CommonBrushes.AllBrushes; comboBoxToolTipBrush.ItemsSource = Source; comboBoxToolTipBrush.SelectedIndex = Array.FindIndex(Source, FindDarkGrayBrush); } // 更新提示文本颜色 private void comboBoxToolTipBrush_SelectionChanged(object sender, System.Windows.Controls.SelectionChangedEventArgs e) { textBox2.ToolTipForeground = ((BrushItem)((ComboBox)sender).SelectedItem).Value; } private void buttonNormalBrush_Loaded(object sender, RoutedEventArgs e) { buttonNormalBrush.Foreground = textBox2.NormalForeground; } // 更新正常文本颜色 private void buttonNormalBrush_Click(object sender, RoutedEventArgs e) { System.Windows.Forms.ColorDialog colorDialog = new System.Windows.Forms.ColorDialog(); if (colorDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK) { System.Drawing.Color c = colorDialog.Color; buttonNormalBrush.Foreground = new System.Windows.Media.SolidColorBrush(Color.FromArgb(c.A, c.R, c.G, c.B)); textBox2.NormalForeground = buttonNormalBrush.Foreground; } } } }
CommonBrushes类实现请参考文章:
WPF:获取 Brushes 类中定义的所有常用画笔