/// <summary> /// Invoked whenever application code or internal processes (such as a rebuilding layout pass) call ApplyTemplate. In simplest terms, this means the method is called just before a UI element displays in your app. Override this method to influence the default post-template logic of a class. /// </summary> protected override void OnApplyTemplate() { this.UnsubscribeEvents(); this.textBox = this.GetTemplateChild(TextBoxPropertyName) as UpDownTextBox; this.autoCompletePresenter = this.GetTemplateChild(AutoCompletePresenterPropertyName) as Popup; this.autoCompletePresenter.Width = this.ActualWidth; this.autocompleteItemsContainer = this.GetTemplateChild(AutocompleteItemsContainerPropertyName) as SimpleThemingListBox; this.autocompleteItemsContainer.Width = this.ActualWidth; this.SetBorderThickness(); base.OnApplyTemplate(); this.SubscribeEvents(); }
/// <summary> /// Invoked whenever application code or internal processes (such as a rebuilding layout pass) call ApplyTemplate. In simplest terms, this means the method is called just before a UI element displays in your app. Override this method to influence the default post-template logic of a class. /// </summary> protected override void OnApplyTemplate() { base.OnApplyTemplate(); if (DesignMode.DesignModeEnabled) { return; } this.GotFocus += this.OnGotFocus; this.LostFocus += this.OnLostFocus; this.PointerWheelChanged += this.OnPointerWheelChanged; _valueTextBox = this.GetTemplateChild(ValueTextBoxName) as UpDownTextBox; _dragOverlay = this.GetTemplateChild(DragOverlayName) as UIElement; _decrementButton = this.GetTemplateChild(DecrementButtonName) as RepeatButton; _incrementButton = this.GetTemplateChild(IncrementButtonName) as RepeatButton; _valueBar = this.GetTemplateChild(ValueBarName) as FrameworkElement; if (_valueTextBox != null) { _valueTextBox.LostFocus += this.OnValueTextBoxLostFocus; _valueTextBox.GotFocus += this.OnValueTextBoxGotFocus; _valueTextBox.Text = this.Value.ToString(CultureInfo.CurrentCulture); _valueTextBox.TextChanged += this.OnValueTextBoxTextChanged; _valueTextBox.KeyDown += this.OnValueTextBoxKeyDown; _valueTextBox.UpPressed += (s, e) => this.Increment(); _valueTextBox.DownPressed += (s, e) => this.Decrement(); _valueTextBox.PointerExited += this.OnValueTextBoxPointerExited; } if (_dragOverlay != null) { _dragOverlay.Tapped += this.OnDragOverlayTapped; _dragOverlay.ManipulationMode = ManipulationModes.TranslateX | ManipulationModes.TranslateY; _dragOverlay.PointerPressed += this.OnDragOverlayPointerPressed; _dragOverlay.PointerReleased += this.OnDragOverlayPointerReleased; _dragOverlay.PointerCaptureLost += this.OnDragOverlayPointerCaptureLost; } if (_decrementButton != null) { _decrementButton.Click += this.OnDecrementButtonClick; var pcc = new PropertyChangeEventSource<bool> (_decrementButton, "IsPressed"); pcc.ValueChanged += this.OnDecrementButtonIsPressedChanged; } if (_incrementButton != null) { _incrementButton.Click += this.OnIncrementButtonClick; var pcc = new PropertyChangeEventSource<bool> (_incrementButton, "IsPressed"); pcc.ValueChanged += this.OnIncrementButtonIsPressedChanged; } if (_valueBar != null) { _valueBar.SizeChanged += this.OnValueBarSizeChanged; this.UpdateValueBar(); } this.UpdateIsReadOnlyDependants(); this.SetValidIncrementDirection(); }
/// <summary> /// Invoked whenever application code or internal processes (such as a rebuilding layout pass) call ApplyTemplate. In simplest terms, this means the method is called just before a UI element displays in your app. Override this method to influence the default post-template logic of a class. /// </summary> protected override void OnApplyTemplate() { base.OnApplyTemplate(); if (DesignMode.DesignModeEnabled) { return; } this.GotFocus += OnGotFocus; this.LostFocus += OnLostFocus; this.PointerWheelChanged += OnPointerWheelChanged; _valueTextBox = GetTemplateChild(ValueTextBoxName) as UpDownTextBox; _dragOverlay = GetTemplateChild(DragOverlayName) as UIElement; _decrementButton = GetTemplateChild(DecrementButtonName) as RepeatButton; _incrementButton = GetTemplateChild(IncrementButtonName) as RepeatButton; _valueBar = GetTemplateChild(ValueBarName) as FrameworkElement; if (_valueTextBox != null) { _valueTextBox.LostFocus += OnValueTextBoxLostFocus; _valueTextBox.GotFocus += OnValueTextBoxGotFocus; _valueTextBox.Text = Value.ToString(); _valueTextBox.TextChanged += OnValueTextBoxTextChanged; _valueTextBox.KeyDown += OnValueTextBoxKeyDown; _valueTextBox.UpPressed += (s, e) => this.Increment(); _valueTextBox.DownPressed += (s, e) => this.Decrement(); _valueTextBox.PointerExited += OnValueTextBoxPointerExited; } if (_dragOverlay != null) { _dragOverlay.Tapped += OnDragOverlayTapped; _dragOverlay.ManipulationMode = ManipulationModes.TranslateX | ManipulationModes.TranslateY; _dragOverlay.PointerPressed += OnDragOverlayPointerPressed; _dragOverlay.PointerReleased += OnDragOverlayPointerReleased; _dragOverlay.PointerCaptureLost += OnDragOverlayPointerCaptureLost; } if (_decrementButton != null) { _decrementButton.Click += OnDecrementButtonClick; var pcc = new PropertyChangeEventSource <bool> (_decrementButton, "IsPressed"); pcc.ValueChanged += OnDecrementButtonIsPressedChanged; } if (_incrementButton != null) { _incrementButton.Click += OnIncrementButtonClick; var pcc = new PropertyChangeEventSource <bool> (_incrementButton, "IsPressed"); pcc.ValueChanged += OnIncrementButtonIsPressedChanged; } if (_valueBar != null) { _valueBar.SizeChanged += OnValueBarSizeChanged; UpdateValueBar(); } UpdateIsReadOnlyDependants(); SetValidIncrementDirection(); }
/// <summary> /// Invoked whenever application code or internal processes (such as a rebuilding layout pass) call ApplyTemplate. In simplest terms, this means the method is called just before a UI element displays in your app. Override this method to influence the default post-template logic of a class. /// </summary> protected override void OnApplyTemplate() { this.UnsubscribeEvents(); this.textBox = this.GetTemplateChild(TextBoxPropertyName) as UpDownTextBox; this.autoCompletePresenter = this.GetTemplateChild(AutoCompletePresenterPropertyName) as Popup; this.autoCompletePresenter.Width = this.ActualWidth; this.autocompleteItemsContainer = this.GetTemplateChild(AutocompleteItemsContainerPropertyName) as SimpleThemingListBox; this.autocompleteItemsContainer.Width = this.ActualWidth; this.SetBorderThickness(); base.OnApplyTemplate(); this.SubscribeEvents(); }