123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows;
- using System.Windows.Controls;
- using System.Windows.Media;
- namespace PDF_Office.CustomControl
- {
- /// <summary>
- /// 带预文本和圆角的textbox
- /// </summary>
- public class TextBoxEx : TextBox
- {
- static TextBoxEx()
- {
- DefaultStyleKeyProperty.OverrideMetadata(typeof(TextBoxEx), new FrameworkPropertyMetadata(typeof(TextBoxEx)));
- }
- public override void OnApplyTemplate()
- {
- //需要配合特定的Style才可用
- var btn = base.GetTemplateChild("PART_BtnClear") as Button;
- if(btn!=null)
- {
- WeakEventManager<Button, RoutedEventArgs>.AddHandler(btn, "Click", Btn_Click);
- }
- base.OnApplyTemplate();
- }
- private void Btn_Click(object sender, RoutedEventArgs e)
- {
- this.Text = "";
- this.Focus();
- }
- public string PlaceholderText
- {
- get { return (string)GetValue(PlaceholderTextProperty); }
- set { SetValue(PlaceholderTextProperty, value); }
- }
- public static readonly DependencyProperty PlaceholderTextProperty
- = DependencyProperty.Register("PlaceholderText", typeof(string), typeof(TextBoxEx), null);
- public CornerRadius CornerRadius
- {
- get { return (CornerRadius)GetValue(CornerRadiusProperty); }
- set { SetValue(CornerRadiusProperty, value); }
- }
- public static readonly DependencyProperty CornerRadiusProperty =
- DependencyProperty.Register("CornerRadius", typeof(CornerRadius), typeof(TextBoxEx), new PropertyMetadata(new CornerRadius(4)));
- public Brush PlaceholderForeground
- {
- get { return (Brush)GetValue(PlaceholderForegroundProperty); }
- set { SetValue(PlaceholderForegroundProperty, value); }
- }
- public static readonly DependencyProperty PlaceholderForegroundProperty =
- DependencyProperty.Register("PlaceholderForeground", typeof(Brush), typeof(TextBoxEx), new PropertyMetadata(new SolidColorBrush((Color)ColorConverter.ConvertFromString("#94989C"))));
- public Brush MouseOverForeground
- {
- get
- {
- return (Brush)GetValue(MouseOverForegroundProperty);
- }
- set { SetValue(MouseOverForegroundProperty, value); }
- }
- public static readonly DependencyProperty MouseOverForegroundProperty =
- DependencyProperty.Register("MouseOverForeground", typeof(Brush), typeof(TextBoxEx), new PropertyMetadata(new SolidColorBrush(Colors.Transparent)));
- public bool IsError
- {
- get { return (bool)GetValue(IsErrorProperty); }
- set { SetValue(IsErrorProperty, value); }
- }
- // Using a DependencyProperty as the backing store for IsError. This enables animation, styling, binding, etc...
- public static readonly DependencyProperty IsErrorProperty =
- DependencyProperty.Register("IsError", typeof(bool), typeof(TextBoxEx), new PropertyMetadata(false));
- public Visibility ShowTipText
- {
- get { return (Visibility)GetValue(ShowTipTextProperty); }
- set { SetValue(ShowTipTextProperty, value); }
- }
- // Using a DependencyProperty as the backing store for ShowTipText. This enables animation, styling, binding, etc...
- public static readonly DependencyProperty ShowTipTextProperty =
- DependencyProperty.Register("ShowTipText", typeof(Visibility), typeof(TextBoxEx), new PropertyMetadata(Visibility.Collapsed));
- public bool ShowTip
- {
- get { return (bool)GetValue(ShowTipProperty); }
- set { SetValue(ShowTipProperty, value); }
- }
- // Using a DependencyProperty as the backing store for ShowTip. This enables animation, styling, binding, etc...
- public static readonly DependencyProperty ShowTipProperty =
- DependencyProperty.Register("ShowTip", typeof(bool), typeof(TextBoxEx), new PropertyMetadata(false));
- public string TipText
- {
- get { return (string)GetValue(TipTextProperty); }
- set { SetValue(TipTextProperty, value); }
- }
- // Using a DependencyProperty as the backing store for TipText. This enables animation, styling, binding, etc...
- public static readonly DependencyProperty TipTextProperty =
- DependencyProperty.Register("TipText", typeof(string), typeof(TextBoxEx), new PropertyMetadata(""));
- public bool ShowClose
- {
- get { return (bool)GetValue(ShowCloseProperty); }
- set { SetValue(ShowCloseProperty, value); }
- }
- // Using a DependencyProperty as the backing store for ShowClose. This enables animation, styling, binding, etc...
- public static readonly DependencyProperty ShowCloseProperty =
- DependencyProperty.Register("ShowClose", typeof(bool), typeof(TextBoxEx), new PropertyMetadata(true));
- }
- }
|