From ecb8324c333d8231d595c3795044cb7b41566412 Mon Sep 17 00:00:00 2001 From: brianlagunas_cp Date: Sat, 7 Jan 2012 04:11:38 +0000 Subject: [PATCH] fixed all OnApplyTemplate overrides that hook into events. --- .../Calculator/Implementation/Calculator.cs | 2 +- .../Implementation/CalculatorUpDown.cs | 12 +++++++++--- .../ChildWindow/Implementation/ChildWindow.cs | 16 ++++++++++++++-- .../ColorCanvas/Implementation/ColorCanvas.cs | 9 ++++++--- .../ColorPicker/Implementation/ColorPicker.cs | 6 +++--- .../Core/Primitives/UpDownBase.cs | 10 ++++++++-- .../Implementation/DateTimePicker.cs | 19 ++++++++++++++----- .../Implementation/DateTimeUpDown.cs | 9 +++++++-- .../Implementation/MaskedTextBox.cs | 15 +++++++++------ .../MessageBox/Implementation/MessageBox.cs | 11 ++++++++--- .../Implementation/MultiLineTextEditor.cs | 4 ++-- .../TimePicker/Implementation/TimePicker.cs | 13 ++++++++++--- 12 files changed, 91 insertions(+), 35 deletions(-) diff --git a/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/Calculator/Implementation/Calculator.cs b/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/Calculator/Implementation/Calculator.cs index 2e27da98..9578da5b 100644 --- a/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/Calculator/Implementation/Calculator.cs +++ b/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/Calculator/Implementation/Calculator.cs @@ -199,7 +199,7 @@ namespace Microsoft.Windows.Controls { base.OnApplyTemplate(); - _buttonPanel = (ContentControl)GetTemplateChild("PART_CalculatorButtonPanel"); + _buttonPanel = GetTemplateChild("PART_CalculatorButtonPanel") as ContentControl; } protected override void OnTextInput(TextCompositionEventArgs e) diff --git a/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/CalculatorUpDown/Implementation/CalculatorUpDown.cs b/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/CalculatorUpDown/Implementation/CalculatorUpDown.cs index 237f990f..de477bf9 100644 --- a/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/CalculatorUpDown/Implementation/CalculatorUpDown.cs +++ b/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/CalculatorUpDown/Implementation/CalculatorUpDown.cs @@ -105,10 +105,16 @@ namespace Microsoft.Windows.Controls public override void OnApplyTemplate() { base.OnApplyTemplate(); - _calculatorPopup = (Popup)GetTemplateChild("PART_CalculatorPopup"); - _calculatorPopup.Opened += CalculatorPopup_Opened; - _calculator = (Calculator)GetTemplateChild("PART_Calculator"); + if (_calculatorPopup != null) + _calculatorPopup.Opened -= CalculatorPopup_Opened; + + _calculatorPopup = GetTemplateChild("PART_CalculatorPopup") as Popup; + + if (_calculatorPopup != null) + _calculatorPopup.Opened += CalculatorPopup_Opened; + + _calculator = GetTemplateChild("PART_Calculator") as Calculator; } #endregion //Base Class Overrides diff --git a/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/ChildWindow/Implementation/ChildWindow.cs b/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/ChildWindow/Implementation/ChildWindow.cs index 8c0a8578..527cc0d8 100644 --- a/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/ChildWindow/Implementation/ChildWindow.cs +++ b/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/ChildWindow/Implementation/ChildWindow.cs @@ -395,7 +395,15 @@ namespace Microsoft.Windows.Controls { base.OnApplyTemplate(); - _dragWidget = (Border)GetTemplateChild("PART_DragWidget"); + if (_dragWidget != null) + { + _dragWidget.RemoveHandler(UIElement.MouseLeftButtonDownEvent, new MouseButtonEventHandler(HeaderLeftMouseButtonDown)); + _dragWidget.RemoveHandler(UIElement.MouseLeftButtonUpEvent, new MouseButtonEventHandler(HeaderMouseLeftButtonUp)); + _dragWidget.MouseMove -= (o, e) => HeaderMouseMove(e); + } + + _dragWidget = GetTemplateChild("PART_DragWidget") as Border; + if (_dragWidget != null) { _dragWidget.AddHandler(UIElement.MouseLeftButtonDownEvent, new MouseButtonEventHandler(HeaderLeftMouseButtonDown), true); @@ -403,7 +411,11 @@ namespace Microsoft.Windows.Controls _dragWidget.MouseMove += (o, e) => HeaderMouseMove(e); } - CloseButton = (Button)GetTemplateChild("PART_CloseButton"); + if (CloseButton != null) + CloseButton.Click -= (o, e) => Close(); + + CloseButton = GetTemplateChild("PART_CloseButton") as Button; + if (CloseButton != null) CloseButton.Click += (o, e) => Close(); diff --git a/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/ColorCanvas/Implementation/ColorCanvas.cs b/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/ColorCanvas/Implementation/ColorCanvas.cs index 6a268822..ff10b72d 100644 --- a/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/ColorCanvas/Implementation/ColorCanvas.cs +++ b/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/ColorCanvas/Implementation/ColorCanvas.cs @@ -202,7 +202,8 @@ namespace Microsoft.Windows.Controls _colorShadingCanvas.SizeChanged -= ColorShadingCanvas_SizeChanged; } - _colorShadingCanvas = (Canvas)GetTemplateChild("PART_ColorShadingCanvas"); + _colorShadingCanvas = GetTemplateChild("PART_ColorShadingCanvas") as Canvas; + if (_colorShadingCanvas != null) { _colorShadingCanvas.MouseLeftButtonDown += ColorShadingCanvas_MouseLeftButtonDown; @@ -211,14 +212,16 @@ namespace Microsoft.Windows.Controls _colorShadingCanvas.SizeChanged += ColorShadingCanvas_SizeChanged; } - _colorShadeSelector = (Canvas)GetTemplateChild("PART_ColorShadeSelector"); + _colorShadeSelector = GetTemplateChild("PART_ColorShadeSelector") as Canvas; + if (_colorShadeSelector != null) _colorShadeSelector.RenderTransform = _colorShadeSelectorTransform; if (_spectrumSlider != null) _spectrumSlider.ValueChanged -= SpectrumSlider_ValueChanged; - _spectrumSlider = (ColorSpectrumSlider)GetTemplateChild("PART_SpectrumSlider"); + _spectrumSlider = GetTemplateChild("PART_SpectrumSlider") as ColorSpectrumSlider; + if (_spectrumSlider != null) _spectrumSlider.ValueChanged += SpectrumSlider_ValueChanged; diff --git a/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/ColorPicker/Implementation/ColorPicker.cs b/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/ColorPicker/Implementation/ColorPicker.cs index f61a8ade..720e07e5 100644 --- a/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/ColorPicker/Implementation/ColorPicker.cs +++ b/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/ColorPicker/Implementation/ColorPicker.cs @@ -228,21 +228,21 @@ namespace Microsoft.Windows.Controls if (_availableColors != null) _availableColors.SelectionChanged -= Color_SelectionChanged; - _availableColors = (ListBox)GetTemplateChild("PART_AvailableColors"); + _availableColors = GetTemplateChild("PART_AvailableColors") as ListBox; if (_availableColors != null) _availableColors.SelectionChanged += Color_SelectionChanged; if (_standardColors != null) _standardColors.SelectionChanged -= Color_SelectionChanged; - _standardColors = (ListBox)GetTemplateChild("PART_StandardColors"); + _standardColors = GetTemplateChild("PART_StandardColors") as ListBox; if (_standardColors != null) _standardColors.SelectionChanged += Color_SelectionChanged; if (_recentColors != null) _recentColors.SelectionChanged -= Color_SelectionChanged; - _recentColors = (ListBox)GetTemplateChild("PART_RecentColors"); + _recentColors = GetTemplateChild("PART_RecentColors") as ListBox; if (_recentColors != null) _recentColors.SelectionChanged += Color_SelectionChanged; } diff --git a/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/Core/Primitives/UpDownBase.cs b/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/Core/Primitives/UpDownBase.cs index 56d02e4a..a0b46dd6 100644 --- a/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/Core/Primitives/UpDownBase.cs +++ b/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/Core/Primitives/UpDownBase.cs @@ -51,7 +51,7 @@ namespace Microsoft.Windows.Controls.Primitives { get { return (bool)GetValue(MouseWheelActiveOnFocusProperty); } set { SetValue(MouseWheelActiveOnFocusProperty, value); } - } + } #endregion //MouseWheelActiveOnFocus @@ -120,8 +120,14 @@ namespace Microsoft.Windows.Controls.Primitives base.OnApplyTemplate(); TextBox = GetTemplateChild(ElementTextName) as TextBox; + + if (Spinner != null) + Spinner.Spin -= OnSpinnerSpin; + Spinner = GetTemplateChild(ElementSpinnerName) as Spinner; - Spinner.Spin += OnSpinnerSpin; + + if (Spinner != null) + Spinner.Spin += OnSpinnerSpin; SetValidSpinDirection(); } diff --git a/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/DateTimePicker/Implementation/DateTimePicker.cs b/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/DateTimePicker/Implementation/DateTimePicker.cs index 398bc0c8..8f452ea5 100644 --- a/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/DateTimePicker/Implementation/DateTimePicker.cs +++ b/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/DateTimePicker/Implementation/DateTimePicker.cs @@ -38,7 +38,7 @@ namespace Microsoft.Windows.Controls { get { return (TimeFormat)GetValue(TimeFormatProperty); } set { SetValue(TimeFormatProperty, value); } - } + } #endregion //TimeFormat @@ -98,10 +98,19 @@ namespace Microsoft.Windows.Controls { base.OnApplyTemplate(); - _calendar = (Calendar)GetTemplateChild("Part_Calendar"); - _calendar.SelectedDatesChanged += Calendar_SelectedDatesChanged; - _calendar.SelectedDate = Value ?? null; - _calendar.DisplayDate = Value ?? DateTime.Now; + if (_calendar != null) + { + _calendar.SelectedDatesChanged -= Calendar_SelectedDatesChanged; + } + + _calendar = GetTemplateChild("Part_Calendar") as Calendar; + + if (_calendar != null) + { + _calendar.SelectedDatesChanged += Calendar_SelectedDatesChanged; + _calendar.SelectedDate = Value ?? null; + _calendar.DisplayDate = Value ?? DateTime.Now; + } } protected override void OnPreviewMouseUp(MouseButtonEventArgs e) diff --git a/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/DateTimeUpDown/Implementation/DateTimeUpDown.cs b/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/DateTimeUpDown/Implementation/DateTimeUpDown.cs index 1d0a9b4c..11f72598 100644 --- a/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/DateTimeUpDown/Implementation/DateTimeUpDown.cs +++ b/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/DateTimeUpDown/Implementation/DateTimeUpDown.cs @@ -115,8 +115,13 @@ namespace Microsoft.Windows.Controls public override void OnApplyTemplate() { + if (TextBox != null) + TextBox.SelectionChanged -= TextBox_SelectionChanged; + base.OnApplyTemplate(); - TextBox.SelectionChanged += TextBox_SelectionChanged; + + if (TextBox != null) + TextBox.SelectionChanged += TextBox_SelectionChanged; } protected override void OnCultureInfoChanged(CultureInfo oldValue, CultureInfo newValue) @@ -202,7 +207,7 @@ namespace Microsoft.Windows.Controls protected override string ConvertValueToText() { if (Value == null) return string.Empty; - + return Value.Value.ToString(GetFormatString(Format), CultureInfo); } diff --git a/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/MaskedTextBox/Implementation/MaskedTextBox.cs b/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/MaskedTextBox/Implementation/MaskedTextBox.cs index cacbc655..e6f2517a 100644 --- a/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/MaskedTextBox/Implementation/MaskedTextBox.cs +++ b/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/MaskedTextBox/Implementation/MaskedTextBox.cs @@ -205,6 +205,15 @@ namespace Microsoft.Windows.Controls TextProperty.OverrideMetadata(typeof(MaskedTextBox), new FrameworkPropertyMetadata(OnTextChanged)); } + public MaskedTextBox() + { + PreviewTextInput += TextBox_PreviewTextInput; + PreviewKeyDown += TextBox_PreviewKeyDown; + + CommandBindings.Add(new CommandBinding(ApplicationCommands.Paste, Paste)); //handle paste + CommandBindings.Add(new CommandBinding(ApplicationCommands.Cut, null, CanCut)); //surpress cut + } + #endregion //Constructors #region Base Class Overrides @@ -213,12 +222,6 @@ namespace Microsoft.Windows.Controls { base.OnApplyTemplate(); - PreviewTextInput += TextBox_PreviewTextInput; - PreviewKeyDown += TextBox_PreviewKeyDown; - - CommandBindings.Add(new CommandBinding(ApplicationCommands.Paste, Paste)); //handle paste - CommandBindings.Add(new CommandBinding(ApplicationCommands.Cut, null, CanCut)); //surpress cut - UpdateText(MaskProvider, 0); } diff --git a/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/MessageBox/Implementation/MessageBox.cs b/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/MessageBox/Implementation/MessageBox.cs index 560edb9d..56f70010 100644 --- a/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/MessageBox/Implementation/MessageBox.cs +++ b/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/MessageBox/Implementation/MessageBox.cs @@ -39,7 +39,10 @@ namespace Microsoft.Windows.Controls } internal MessageBox() - { /*user cannot create instance */ } + { + /*user cannot create instance */ + AddHandler(ButtonBase.ClickEvent, new RoutedEventHandler(Button_Click)); + } #endregion //Constructors @@ -156,12 +159,14 @@ namespace Microsoft.Windows.Controls { base.OnApplyTemplate(); + if (DragWidget != null) + DragWidget.DragDelta -= (o, e) => ProcessMove(e); + DragWidget = GetTemplateChild("PART_DragWidget") as Thumb; + if (DragWidget != null) DragWidget.DragDelta += (o, e) => ProcessMove(e); - AddHandler(ButtonBase.ClickEvent, new RoutedEventHandler(Button_Click)); - ChangeVisualState(_button.ToString(), true); SetDefaultResult(); diff --git a/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/MultiLineTextEditor/Implementation/MultiLineTextEditor.cs b/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/MultiLineTextEditor/Implementation/MultiLineTextEditor.cs index 484a7720..b939e901 100644 --- a/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/MultiLineTextEditor/Implementation/MultiLineTextEditor.cs +++ b/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/MultiLineTextEditor/Implementation/MultiLineTextEditor.cs @@ -124,11 +124,11 @@ namespace Microsoft.Windows.Controls if (_resizeThumb != null) _resizeThumb.DragDelta -= ResizeThumb_DragDelta; - _resizeThumb = (Thumb)GetTemplateChild("PART_ResizeThumb"); + + _resizeThumb = GetTemplateChild("PART_ResizeThumb") as Thumb; if (_resizeThumb != null) _resizeThumb.DragDelta += ResizeThumb_DragDelta; - } #endregion //Bass Class Overrides diff --git a/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/TimePicker/Implementation/TimePicker.cs b/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/TimePicker/Implementation/TimePicker.cs index b32224e4..dc09d15d 100644 --- a/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/TimePicker/Implementation/TimePicker.cs +++ b/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/TimePicker/Implementation/TimePicker.cs @@ -317,9 +317,16 @@ namespace Microsoft.Windows.Controls { base.OnApplyTemplate(); - _timeListBox = (ListBox)GetTemplateChild("PART_TimeListItems"); - _timeListBox.ItemsSource = GenerateTimeListItemsSource(); - _timeListBox.SelectionChanged += TimeListBox_SelectionChanged; + if (_timeListBox != null) + _timeListBox.SelectionChanged -= TimeListBox_SelectionChanged; + + _timeListBox = GetTemplateChild("PART_TimeListItems") as ListBox; + + if (_timeListBox != null) + { + _timeListBox.SelectionChanged += TimeListBox_SelectionChanged; + _timeListBox.ItemsSource = GenerateTimeListItemsSource(); + } } #endregion //Base Class Overrides