static ConsoleTextBox() { var oldTextMetadata = TextProperty.GetMetadata(typeof(ConsoleTextBox)) as FrameworkPropertyMetadata; var newTextMetadata = new FrameworkPropertyMetadata(string.Empty, FrameworkPropertyMetadataOptions.BindsTwoWayByDefault | FrameworkPropertyMetadataOptions.Journal, oldTextMetadata.PropertyChangedCallback, CoerceConsoleText, isAnimationProhibited: true, System.Windows.Data.UpdateSourceTrigger.LostFocus); TextProperty.OverrideMetadata(typeof(ConsoleTextBox), newTextMetadata); }
static AutoCompleteTextBox() { // change default UpdateSourceTrigger to PropertyChanged so we get as-you-type suggestions var defaultMetadata = TextProperty.GetMetadata(typeof(TextBox)); TextProperty.OverrideMetadata(typeof(AutoCompleteTextBox), new FrameworkPropertyMetadata( string.Empty, FrameworkPropertyMetadataOptions.Journal | FrameworkPropertyMetadataOptions.BindsTwoWayByDefault, defaultMetadata.PropertyChangedCallback, defaultMetadata.CoerceValueCallback, true, System.Windows.Data.UpdateSourceTrigger.PropertyChanged)); }
static FormPathTextBox() { DefaultStyleKeyProperty.OverrideMetadata(typeof(FormPathTextBox), new FrameworkPropertyMetadata(typeof(FormPathTextBox))); var originalMetadata = TextProperty.GetMetadata(typeof(TextBox)); TextProperty.OverrideMetadata(typeof(FormPathTextBox), new FrameworkPropertyMetadata( originalMetadata.DefaultValue, FrameworkPropertyMetadataOptions.BindsTwoWayByDefault | FrameworkPropertyMetadataOptions.Journal, originalMetadata.PropertyChangedCallback, originalMetadata.CoerceValueCallback, true, UpdateSourceTrigger.PropertyChanged)); }
static SelectableTextBlock() { var defaultMetadata = (FrameworkPropertyMetadata)TextProperty.GetMetadata(typeof(TextBox)); var newMetadata = new FrameworkPropertyMetadata( defaultMetadata.DefaultValue, FrameworkPropertyMetadataOptions.None, defaultMetadata.PropertyChangedCallback, defaultMetadata.CoerceValueCallback, defaultMetadata.IsAnimationProhibited, defaultMetadata.DefaultUpdateSourceTrigger); TextProperty.OverrideMetadata(typeof(SelectableTextBlock), newMetadata); var sealedProperty = typeof(PropertyMetadata).GetProperty("Sealed", BindingFlags.Instance | BindingFlags.NonPublic); if (sealedProperty != null) { sealedProperty.SetValue(newMetadata, false); newMetadata.BindsTwoWayByDefault = false; newMetadata.Journal = false; sealedProperty.SetValue(newMetadata, true); } }