Code:
/ 4.0 / 4.0 / 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.
//----------------------------------------------------------------------------
//
// 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
- CompositeActivityTypeDescriptorProvider.cs
- Permission.cs
- DeploymentSection.cs
- VarRemapper.cs
- ConstructorArgumentAttribute.cs
- TreeView.cs
- SubMenuStyleCollection.cs
- OrderedParallelQuery.cs
- DataControlPagerLinkButton.cs
- ObjectDataSourceStatusEventArgs.cs
- HostProtectionException.cs
- ASCIIEncoding.cs
- StatusStrip.cs
- SqlMethodAttribute.cs
- ComNativeDescriptor.cs
- IPPacketInformation.cs
- SecurityState.cs
- ActivityTypeResolver.xaml.cs
- XmlElementAttribute.cs
- PageAsyncTaskManager.cs
- AlignmentYValidation.cs
- PageStatePersister.cs
- _BasicClient.cs
- BitmapData.cs
- Bezier.cs
- GeneralTransform2DTo3DTo2D.cs
- _HeaderInfo.cs
- WebFaultClientMessageInspector.cs
- HashHelper.cs
- ScriptRegistrationManager.cs
- TrackingLocation.cs
- GatewayDefinition.cs
- SearchForVirtualItemEventArgs.cs
- MenuItemBindingCollection.cs
- Message.cs
- WindowsEditBox.cs
- TreeIterators.cs
- FtpWebRequest.cs
- WindowsButton.cs
- PublisherMembershipCondition.cs
- ADConnectionHelper.cs
- RuntimeEnvironment.cs
- DynamicObjectAccessor.cs
- ToolStripSystemRenderer.cs
- DynamicDocumentPaginator.cs
- xmlformatgeneratorstatics.cs
- TypeNameConverter.cs
- Vertex.cs
- ReflectionPermission.cs
- Substitution.cs
- XmlSchemaDatatype.cs
- Behavior.cs
- RefType.cs
- TemplatedAdorner.cs
- StylusLogic.cs
- FixedBufferAttribute.cs
- DataObject.cs
- ContentHostHelper.cs
- MsmqHostedTransportManager.cs
- DiagnosticsConfigurationHandler.cs
- RegexEditorDialog.cs
- TextBoxView.cs
- PublisherIdentityPermission.cs
- XmlSchemaFacet.cs
- DecoderReplacementFallback.cs
- MessageLogTraceRecord.cs
- KeysConverter.cs
- Relationship.cs
- WebBrowserNavigatedEventHandler.cs
- BindingListCollectionView.cs
- FragmentNavigationEventArgs.cs
- DisplayNameAttribute.cs
- HwndMouseInputProvider.cs
- Span.cs
- updatecommandorderer.cs
- PaginationProgressEventArgs.cs
- followingquery.cs
- CommonDialog.cs
- TableCellsCollectionEditor.cs
- ConnectionManagementSection.cs
- DbExpressionRules.cs
- TypeName.cs
- TargetPerspective.cs
- HttpStreamMessageEncoderFactory.cs
- NamespaceEmitter.cs
- DataRowView.cs
- TextTreeDeleteContentUndoUnit.cs
- PropertyKey.cs
- DataGridRow.cs
- ValidationRuleCollection.cs
- XmlSchemaAnnotation.cs
- Utils.cs
- TypeLoadException.cs
- PermissionSet.cs
- Mappings.cs
- CustomTypeDescriptor.cs
- GPPOINTF.cs
- TextSelectionHighlightLayer.cs
- DesignerAdapterAttribute.cs
- ReturnValue.cs