using CustomUI.MyControls.Primitives; using System.Windows; using System.Windows.Media; namespace CustomUI { /// /// 带图标的文本输入框 /// public class IconTextBox : IconTextBoxBase { public enum IconPlacementEnum { Left, Right, } static IconTextBox() { DefaultStyleKeyProperty.OverrideMetadata(typeof(IconTextBox), new FrameworkPropertyMetadata(typeof(IconTextBox))); } #region 事件定义 public static readonly RoutedEvent EnterKeyClickEvent = EventManager.RegisterRoutedEvent("EnterKeyClick", RoutingStrategy.Bubble, typeof(RoutedPropertyChangedEventHandler), typeof(IconTextBox)); public event RoutedPropertyChangedEventHandler EnterKeyClick { add { this.AddHandler(EnterKeyClickEvent, value); } remove { this.RemoveHandler(EnterKeyClickEvent, value); } } protected virtual void OnEnterKeyClick(object oldValue, object newValue) { RoutedPropertyChangedEventArgs arg = new RoutedPropertyChangedEventArgs(oldValue, newValue, EnterKeyClickEvent); this.RaiseEvent(arg); } #endregion #region 依赖属性 #region Path相关属性 public static readonly DependencyProperty IconPlacementProperty = DependencyProperty.Register("IconPlacement" , typeof(IconPlacementEnum), typeof(IconTextBox)); /// /// 文本输入框的图标显示位置 /// public IconPlacementEnum IconPlacement { get { return (IconPlacementEnum)GetValue(IconPlacementProperty); } set { SetValue(IconPlacementProperty, value); } } public static readonly DependencyProperty IconColorProperty = DependencyProperty.Register("IconColor" , typeof(Brush), typeof(IconTextBox)); /// /// 图标的颜色 /// public Brush IconColor { get { return (Brush)GetValue(IconColorProperty); } set { SetValue(IconColorProperty, value); } } #endregion #endregion public IconTextBox() : base() { this.KeyUp += IconTextBox_KeyUp; } private void IconTextBox_KeyUp(object sender, System.Windows.Input.KeyEventArgs e) { if(e.Key == System.Windows.Input.Key.Enter) { this.OnEnterKeyClick(null, null); } } } }