Mercurial > silverbladetech
view MetroWpf/MetroWpf.Xaml/Controls/WatermarkTextBox.cs @ 81:4ea16a799a03
upload ready after tidy up
author | Steven Hollidge <stevenhollidge@hotmail.com> |
---|---|
date | Mon, 23 Apr 2012 23:20:01 +0100 |
parents | 8049f7c58c2b |
children |
line wrap: on
line source
using System; using System.Windows; using System.Windows.Controls; using System.Windows.Input; namespace Microsoft.Windows.Controls { public class WatermarkTextBox : TextBox { #region Properties #region SelectAllOnGotFocus public static readonly DependencyProperty SelectAllOnGotFocusProperty = DependencyProperty.Register("SelectAllOnGotFocus", typeof(bool), typeof(WatermarkTextBox), new PropertyMetadata(false)); public bool SelectAllOnGotFocus { get { return (bool)GetValue(SelectAllOnGotFocusProperty); } set { SetValue(SelectAllOnGotFocusProperty, value); } } #endregion //SelectAllOnGotFocus #region Watermark public static readonly DependencyProperty WatermarkProperty = DependencyProperty.Register("Watermark", typeof(object), typeof(WatermarkTextBox), new UIPropertyMetadata(null)); public object Watermark { get { return (object)GetValue(WatermarkProperty); } set { SetValue(WatermarkProperty, value); } } #endregion //Watermark #region WatermarkTemplate public static readonly DependencyProperty WatermarkTemplateProperty = DependencyProperty.Register("WatermarkTemplate", typeof(DataTemplate), typeof(WatermarkTextBox), new UIPropertyMetadata(null)); public DataTemplate WatermarkTemplate { get { return (DataTemplate)GetValue(WatermarkTemplateProperty); } set { SetValue(WatermarkTemplateProperty, value); } } #endregion //WatermarkTemplate #endregion //Properties #region Constructors static WatermarkTextBox() { DefaultStyleKeyProperty.OverrideMetadata(typeof(WatermarkTextBox), new FrameworkPropertyMetadata(typeof(WatermarkTextBox))); } #endregion //Constructors #region Base Class Overrides protected override void OnGotKeyboardFocus(KeyboardFocusChangedEventArgs e) { if (SelectAllOnGotFocus) SelectAll(); base.OnGotKeyboardFocus(e); } protected override void OnPreviewMouseLeftButtonDown(MouseButtonEventArgs e) { if (!IsKeyboardFocused) { e.Handled = true; Focus(); } base.OnPreviewMouseLeftButtonDown(e); } #endregion //Base Class Overrides } }