Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Framework / System / Windows / Controls / Primitives / StatusBar.cs / 1305600 / StatusBar.cs
//---------------------------------------------------------------------------- // // Copyright (C) Microsoft Corporation. All rights reserved. // //--------------------------------------------------------------------------- using System; using System.Windows.Automation.Peers; using System.Windows.Media; using System.Windows.Threading; using MS.Internal.KnownBoxes; namespace System.Windows.Controls.Primitives { ////// StatusBar is a visual indicator of the operational status of an application and/or /// its components running in a window. StatusBar control consists of a series of zones /// on a band that can display text, graphics, or other rich content. The control can /// group items within these zones to emphasize relational similarities or functional /// connections. The StatusBar can accommodate multiple sets of UI or functionality that /// can be chosen even within the same application. /// [StyleTypedProperty(Property = "ItemContainerStyle", StyleTargetType = typeof(StatusBarItem))] public class StatusBar : ItemsControl { //------------------------------------------------------------------- // // Constructors // //------------------------------------------------------------------- #region Constructors static StatusBar() { DefaultStyleKeyProperty.OverrideMetadata(typeof(StatusBar), new FrameworkPropertyMetadata(typeof(StatusBar))); _dType = DependencyObjectType.FromSystemTypeInternal(typeof(StatusBar)); IsTabStopProperty.OverrideMetadata(typeof(StatusBar), new FrameworkPropertyMetadata(BooleanBoxes.FalseBox)); ItemsPanelTemplate template = new ItemsPanelTemplate(new FrameworkElementFactory(typeof(DockPanel))); template.Seal(); ItemsPanelProperty.OverrideMetadata(typeof(StatusBar), new FrameworkPropertyMetadata(template)); } #endregion //-------------------------------------------------------------------- // // Protected Methods // //------------------------------------------------------------------- #region Protected Methods ////// Return true if the item is (or is eligible to be) its own ItemUI /// protected override bool IsItemItsOwnContainerOverride(object item) { return (item is StatusBarItem) || (item is Separator); } ////// Create or identify the element used to display the given item /// protected override DependencyObject GetContainerForItemOverride() { return new StatusBarItem(); } ////// Prepare the element to display the item. This may involve /// applying styles, setting bindings, etc. /// protected override void PrepareContainerForItemOverride(DependencyObject element, object item) { base.PrepareContainerForItemOverride(element, item); Separator separator = element as Separator; if (separator != null) { bool hasModifiers; BaseValueSourceInternal vs = separator.GetValueSource(StyleProperty, null, out hasModifiers); if (vs <= BaseValueSourceInternal.ImplicitReference) separator.SetResourceReference(StyleProperty, SeparatorStyleKey); separator.DefaultStyleKey = SeparatorStyleKey; } } ////// Determine whether the ItemContainerStyle/StyleSelector should apply to the container /// ///false if item is a Separator, otherwise return true protected override bool ShouldApplyItemContainerStyle(DependencyObject container, object item) { if (item is Separator) { return false; } else { return base.ShouldApplyItemContainerStyle(container, item); } } #endregion #region Accessibility ////// Creates AutomationPeer ( protected override AutomationPeer OnCreateAutomationPeer() { return new StatusBarAutomationPeer(this); } #endregion #region DTypeThemeStyleKey // Returns the DependencyObjectType for the registered ThemeStyleKey's default // value. Controls will override this method to return approriate types. internal override DependencyObjectType DTypeThemeStyleKey { get { return _dType; } } private static DependencyObjectType _dType; #endregion DTypeThemeStyleKey #region ItemsStyleKey ///) /// /// Resource Key for the SeparatorStyle /// public static ResourceKey SeparatorStyleKey { get { return SystemResourceKey.StatusBarSeparatorStyleKey; } } #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; using System.Windows.Automation.Peers; using System.Windows.Media; using System.Windows.Threading; using MS.Internal.KnownBoxes; namespace System.Windows.Controls.Primitives { ////// StatusBar is a visual indicator of the operational status of an application and/or /// its components running in a window. StatusBar control consists of a series of zones /// on a band that can display text, graphics, or other rich content. The control can /// group items within these zones to emphasize relational similarities or functional /// connections. The StatusBar can accommodate multiple sets of UI or functionality that /// can be chosen even within the same application. /// [StyleTypedProperty(Property = "ItemContainerStyle", StyleTargetType = typeof(StatusBarItem))] public class StatusBar : ItemsControl { //------------------------------------------------------------------- // // Constructors // //------------------------------------------------------------------- #region Constructors static StatusBar() { DefaultStyleKeyProperty.OverrideMetadata(typeof(StatusBar), new FrameworkPropertyMetadata(typeof(StatusBar))); _dType = DependencyObjectType.FromSystemTypeInternal(typeof(StatusBar)); IsTabStopProperty.OverrideMetadata(typeof(StatusBar), new FrameworkPropertyMetadata(BooleanBoxes.FalseBox)); ItemsPanelTemplate template = new ItemsPanelTemplate(new FrameworkElementFactory(typeof(DockPanel))); template.Seal(); ItemsPanelProperty.OverrideMetadata(typeof(StatusBar), new FrameworkPropertyMetadata(template)); } #endregion //-------------------------------------------------------------------- // // Protected Methods // //------------------------------------------------------------------- #region Protected Methods ////// Return true if the item is (or is eligible to be) its own ItemUI /// protected override bool IsItemItsOwnContainerOverride(object item) { return (item is StatusBarItem) || (item is Separator); } ////// Create or identify the element used to display the given item /// protected override DependencyObject GetContainerForItemOverride() { return new StatusBarItem(); } ////// Prepare the element to display the item. This may involve /// applying styles, setting bindings, etc. /// protected override void PrepareContainerForItemOverride(DependencyObject element, object item) { base.PrepareContainerForItemOverride(element, item); Separator separator = element as Separator; if (separator != null) { bool hasModifiers; BaseValueSourceInternal vs = separator.GetValueSource(StyleProperty, null, out hasModifiers); if (vs <= BaseValueSourceInternal.ImplicitReference) separator.SetResourceReference(StyleProperty, SeparatorStyleKey); separator.DefaultStyleKey = SeparatorStyleKey; } } ////// Determine whether the ItemContainerStyle/StyleSelector should apply to the container /// ///false if item is a Separator, otherwise return true protected override bool ShouldApplyItemContainerStyle(DependencyObject container, object item) { if (item is Separator) { return false; } else { return base.ShouldApplyItemContainerStyle(container, item); } } #endregion #region Accessibility ////// Creates AutomationPeer ( protected override AutomationPeer OnCreateAutomationPeer() { return new StatusBarAutomationPeer(this); } #endregion #region DTypeThemeStyleKey // Returns the DependencyObjectType for the registered ThemeStyleKey's default // value. Controls will override this method to return approriate types. internal override DependencyObjectType DTypeThemeStyleKey { get { return _dType; } } private static DependencyObjectType _dType; #endregion DTypeThemeStyleKey #region ItemsStyleKey ///) /// /// Resource Key for the SeparatorStyle /// public static ResourceKey SeparatorStyleKey { get { return SystemResourceKey.StatusBarSeparatorStyleKey; } } #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
- RequestCachePolicyConverter.cs
- LoadWorkflowByKeyAsyncResult.cs
- GeometryConverter.cs
- PassportAuthenticationModule.cs
- Msec.cs
- DataGridBoundColumn.cs
- WebPageTraceListener.cs
- DefaultTraceListener.cs
- UnauthorizedWebPart.cs
- ImageSourceTypeConverter.cs
- ItemsPresenter.cs
- HttpCookiesSection.cs
- OrderedDictionaryStateHelper.cs
- Int64KeyFrameCollection.cs
- DataGridViewColumn.cs
- SystemIPGlobalProperties.cs
- CopyOnWriteList.cs
- ApplicationServiceManager.cs
- KeyedQueue.cs
- HttpModulesSection.cs
- HtmlInputText.cs
- MsiStyleLogWriter.cs
- ValueType.cs
- SplayTreeNode.cs
- EventTrigger.cs
- SqlRecordBuffer.cs
- FakeModelItemImpl.cs
- CodeConstructor.cs
- RecipientInfo.cs
- CaseStatement.cs
- InheritedPropertyChangedEventArgs.cs
- ViewBase.cs
- SystemTcpConnection.cs
- SchemaSetCompiler.cs
- MDIWindowDialog.cs
- ButtonBase.cs
- DataSourceProvider.cs
- SharedPerformanceCounter.cs
- ZoomPercentageConverter.cs
- BookmarkWorkItem.cs
- EpmSyndicationContentDeSerializer.cs
- WebConfigurationFileMap.cs
- Root.cs
- RayHitTestParameters.cs
- SessionStateContainer.cs
- DecimalAnimationUsingKeyFrames.cs
- WebMethodAttribute.cs
- ClientTargetSection.cs
- SizeKeyFrameCollection.cs
- ApplicationCommands.cs
- Rotation3D.cs
- TrustSection.cs
- WmlValidatorAdapter.cs
- XPathParser.cs
- DataGridViewColumnDesigner.cs
- RoleManagerSection.cs
- SystemTcpConnection.cs
- ClientBuildManagerCallback.cs
- DataError.cs
- BookmarkScope.cs
- FileDialog.cs
- VectorValueSerializer.cs
- MetadataPropertyvalue.cs
- TypeConverterAttribute.cs
- FieldNameLookup.cs
- WebPartConnectionCollection.cs
- ResXBuildProvider.cs
- TreeNodeBindingCollection.cs
- PromptStyle.cs
- SyndicationItemFormatter.cs
- StylusButton.cs
- SettingsSection.cs
- DataContractSet.cs
- SiteMapDataSourceView.cs
- TimeSpanConverter.cs
- CardSpaceSelector.cs
- BitmapEffectCollection.cs
- RemotingService.cs
- Byte.cs
- ConfigXmlDocument.cs
- KeyGestureValueSerializer.cs
- SoapTypeAttribute.cs
- GroupLabel.cs
- PathSegmentCollection.cs
- SettingsProperty.cs
- ObjectQueryState.cs
- ListViewInsertedEventArgs.cs
- DescendantOverDescendantQuery.cs
- IndicShape.cs
- AssociatedControlConverter.cs
- ExtractedStateEntry.cs
- IndentedTextWriter.cs
- MsmqHostedTransportConfiguration.cs
- StylusButtonCollection.cs
- HebrewCalendar.cs
- Calendar.cs
- ProcessRequestArgs.cs
- PropertyEmitterBase.cs
- XmlUTF8TextReader.cs
- DiscoveryClientDocuments.cs