Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / wpf / src / Framework / System / Windows / Controls / Primitives / StatusBar.cs / 1 / 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 { if (_cacheSeparatorStyle == null) { _cacheSeparatorStyle = new SystemThemeKey(SystemResourceKeyID.StatusBarSeparatorStyle); } return _cacheSeparatorStyle; } } private static SystemThemeKey _cacheSeparatorStyle; #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 { if (_cacheSeparatorStyle == null) { _cacheSeparatorStyle = new SystemThemeKey(SystemResourceKeyID.StatusBarSeparatorStyle); } return _cacheSeparatorStyle; } } private static SystemThemeKey _cacheSeparatorStyle; #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
- PluralizationService.cs
- PointAnimation.cs
- JsonReader.cs
- StickyNoteContentControl.cs
- Keyboard.cs
- PropertyCondition.cs
- ColumnMapCopier.cs
- SerializationSectionGroup.cs
- ProtocolsSection.cs
- COM2EnumConverter.cs
- CompositionAdorner.cs
- ColumnMapTranslator.cs
- Walker.cs
- LogLogRecordEnumerator.cs
- ParameterReplacerVisitor.cs
- Walker.cs
- CodeSnippetTypeMember.cs
- WebException.cs
- WorkflowItemsPresenter.cs
- Vector.cs
- PropertyManager.cs
- DiscreteKeyFrames.cs
- RotationValidation.cs
- AdRotator.cs
- ContextStack.cs
- DesignTableCollection.cs
- HwndSourceKeyboardInputSite.cs
- CaseInsensitiveComparer.cs
- PeerInvitationResponse.cs
- RuleSettingsCollection.cs
- RowsCopiedEventArgs.cs
- LocalizabilityAttribute.cs
- WebServiceTypeData.cs
- ColorConvertedBitmap.cs
- ListViewInsertEventArgs.cs
- PiiTraceSource.cs
- XomlCompilerHelpers.cs
- PageParserFilter.cs
- CatalogZone.cs
- CodeDomSerializationProvider.cs
- Accessible.cs
- VectorKeyFrameCollection.cs
- GridViewHeaderRowPresenter.cs
- GetPageNumberCompletedEventArgs.cs
- TextFormatterImp.cs
- AccessViolationException.cs
- Module.cs
- TrackingMemoryStreamFactory.cs
- SqlFacetAttribute.cs
- ToolboxItem.cs
- HostExecutionContextManager.cs
- OperatorExpressions.cs
- TextOnlyOutput.cs
- ProgressiveCrcCalculatingStream.cs
- LifetimeServices.cs
- PropertyGridEditorPart.cs
- FullTextState.cs
- QuaternionRotation3D.cs
- InheritedPropertyDescriptor.cs
- LogSwitch.cs
- SecureConversationServiceCredential.cs
- ProxyWebPartManager.cs
- hebrewshape.cs
- VirtualPathUtility.cs
- OracleException.cs
- WebPartEditorOkVerb.cs
- JournalEntryListConverter.cs
- SHA384Managed.cs
- DataBindingCollection.cs
- FieldAccessException.cs
- ClaimTypes.cs
- SymbolDocumentGenerator.cs
- InkCanvasSelectionAdorner.cs
- XmlSchemaAttributeGroup.cs
- ProviderConnectionPointCollection.cs
- ApplicationFileParser.cs
- InertiaTranslationBehavior.cs
- SpnegoTokenProvider.cs
- XamlLoadErrorInfo.cs
- CodeParameterDeclarationExpression.cs
- ComponentEditorForm.cs
- PropertyGeneratedEventArgs.cs
- TreeNodeClickEventArgs.cs
- HttpProfileGroupBase.cs
- SslStream.cs
- PointCollection.cs
- ListBoxAutomationPeer.cs
- NavigatingCancelEventArgs.cs
- TransformGroup.cs
- LinqDataSourceHelper.cs
- ThreadStartException.cs
- PlanCompilerUtil.cs
- ByeOperationAsyncResult.cs
- ProjectionCamera.cs
- IsolationInterop.cs
- AssemblyInfo.cs
- DelayedRegex.cs
- Compiler.cs
- ApplicationInfo.cs
- OdbcConnectionFactory.cs