Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Framework / System / Windows / Controls / Primitives / CalendarButton.cs / 1305600 / CalendarButton.cs
//---------------------------------------------------------------------------- // // Copyright (C) Microsoft Corporation. All rights reserved. // //--------------------------------------------------------------------------- using System.Windows; using System.Windows.Automation.Peers; using System.Windows.Controls; using System.Windows.Data; namespace System.Windows.Controls.Primitives { ////// Represents a button control used in Calendar Control, which reacts to the Click event. /// public sealed class CalendarButton : Button { ////// Static constructor /// static CalendarButton() { DefaultStyleKeyProperty.OverrideMetadata(typeof(CalendarButton), new FrameworkPropertyMetadata(typeof(CalendarButton))); } ////// Represents the CalendarButton that is used in Calendar Control. /// public CalendarButton() : base() { } #region Public Properties #region HasSelectedDays internal static readonly DependencyPropertyKey HasSelectedDaysPropertyKey = DependencyProperty.RegisterReadOnly( "HasSelectedDays", typeof(bool), typeof(CalendarButton), new FrameworkPropertyMetadata(false, new PropertyChangedCallback(OnVisualStatePropertyChanged))); ////// Dependency property field for HasSelectedDays property /// public static readonly DependencyProperty HasSelectedDaysProperty = HasSelectedDaysPropertyKey.DependencyProperty; ////// True if the CalendarButton represents a date range containing the display date /// public bool HasSelectedDays { get { return (bool)GetValue(HasSelectedDaysProperty); } internal set { SetValue(HasSelectedDaysPropertyKey, value); } } #endregion HasSelectedDays #region IsInactive internal static readonly DependencyPropertyKey IsInactivePropertyKey = DependencyProperty.RegisterReadOnly( "IsInactive", typeof(bool), typeof(CalendarButton), new FrameworkPropertyMetadata(false, new PropertyChangedCallback(OnVisualStatePropertyChanged))); ////// Dependency property field for IsInactive property /// public static readonly DependencyProperty IsInactiveProperty = IsInactivePropertyKey.DependencyProperty; ////// True if the CalendarButton represents /// a month that falls outside the current year /// or /// a year that falls outside the current decade /// public bool IsInactive { get { return (bool)GetValue(IsInactiveProperty); } internal set { SetValue(IsInactivePropertyKey, value); } } #endregion IsInactive #endregion Public Properties #region Internal Properties internal Calendar Owner { get; set; } #endregion Internal Properties #region Public Methods #endregion Public Methods #region Protected Methods ////// Change to the correct visual state for the button. /// /// /// true to use transitions when updating the visual state, false to /// snap directly to the new visual state. /// internal override void ChangeVisualState(bool useTransitions) { // Update the SelectionStates group if (HasSelectedDays) { VisualStates.GoToState(this, useTransitions, VisualStates.StateSelected, VisualStates.StateUnselected); } else { VisualStateManager.GoToState(this, VisualStates.StateUnselected, useTransitions); } // Update the ActiveStates group if (!IsInactive) { VisualStates.GoToState(this, useTransitions, VisualStates.StateActive, VisualStates.StateInactive); } else { VisualStateManager.GoToState(this, VisualStates.StateInactive, useTransitions); } // Update the FocusStates group if (IsKeyboardFocused) { VisualStates.GoToState(this, useTransitions, VisualStates.StateCalendarButtonFocused, VisualStates.StateCalendarButtonUnfocused); } else { VisualStateManager.GoToState(this, VisualStates.StateCalendarButtonUnfocused, useTransitions); } base.ChangeVisualState(useTransitions); } ////// Creates the automation peer for the DayButton. /// ///protected override AutomationPeer OnCreateAutomationPeer() { return new CalendarButtonAutomationPeer(this); } #endregion Protected Methods #region Internal Methods internal void SetContentInternal(string value) { SetCurrentValueInternal(ContentControl.ContentProperty, value); } #endregion } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- Triangle.cs
- EntityKeyElement.cs
- ComplexPropertyEntry.cs
- Site.cs
- CustomLineCap.cs
- SoapMessage.cs
- MessageDesigner.cs
- DataSourceSelectArguments.cs
- SendSecurityHeader.cs
- TableAutomationPeer.cs
- OciEnlistContext.cs
- BaseTemplateParser.cs
- ReadContentAsBinaryHelper.cs
- SkipQueryOptionExpression.cs
- CommandExpr.cs
- ToolboxItem.cs
- MsmqIntegrationInputChannel.cs
- ViewBase.cs
- EmptyEnumerable.cs
- TabItemWrapperAutomationPeer.cs
- IisTraceListener.cs
- Stream.cs
- XPathSelfQuery.cs
- DependencyObject.cs
- MatrixAnimationUsingKeyFrames.cs
- FilePrompt.cs
- Validator.cs
- ValidatedControlConverter.cs
- EllipseGeometry.cs
- StructureChangedEventArgs.cs
- SettingsBase.cs
- TaskbarItemInfo.cs
- FontWeights.cs
- MissingManifestResourceException.cs
- TextDecorations.cs
- TransformValueSerializer.cs
- IriParsingElement.cs
- CallbackValidatorAttribute.cs
- EditorPartDesigner.cs
- InternalResources.cs
- GorillaCodec.cs
- TransformValueSerializer.cs
- MenuBase.cs
- FastEncoder.cs
- PersonalizationState.cs
- MiniLockedBorderGlyph.cs
- CodeSnippetCompileUnit.cs
- WorkflowMarkupSerializerMapping.cs
- Convert.cs
- SmiXetterAccessMap.cs
- ArrayTypeMismatchException.cs
- TextEditorCharacters.cs
- RepeatBehavior.cs
- FileFormatException.cs
- KeyValueConfigurationElement.cs
- DefaultPropertyAttribute.cs
- OutputChannelBinder.cs
- Trace.cs
- EventMappingSettings.cs
- NameObjectCollectionBase.cs
- DataGridViewRowPostPaintEventArgs.cs
- URLMembershipCondition.cs
- ConsoleCancelEventArgs.cs
- PackagePartCollection.cs
- GridLengthConverter.cs
- BinaryWriter.cs
- URI.cs
- StorageMappingFragment.cs
- Array.cs
- ObjectCacheHost.cs
- CharacterMetrics.cs
- CodeDelegateInvokeExpression.cs
- TraceSource.cs
- SequentialOutput.cs
- WebHttpBindingCollectionElement.cs
- ClientScriptManagerWrapper.cs
- ConnectionProviderAttribute.cs
- GridViewColumnCollectionChangedEventArgs.cs
- TextOnlyOutput.cs
- DynamicPropertyReader.cs
- TemplateBindingExpressionConverter.cs
- StaticSiteMapProvider.cs
- CheckBox.cs
- DataColumnChangeEvent.cs
- ExpressionBindingCollection.cs
- ExpressionEditorAttribute.cs
- ListView.cs
- ResourceExpressionBuilder.cs
- NativeMethods.cs
- FormattedTextSymbols.cs
- UrlAuthorizationModule.cs
- EventListenerClientSide.cs
- NTAccount.cs
- ZipPackagePart.cs
- RegexParser.cs
- DataMemberAttribute.cs
- DBPropSet.cs
- BaseTemplateCodeDomTreeGenerator.cs
- RSAPKCS1SignatureFormatter.cs
- CodeObject.cs