Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / 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
- AdapterDictionary.cs
- DataGridViewTextBoxCell.cs
- DetectRunnableInstancesTask.cs
- XmlnsDefinitionAttribute.cs
- DiscoveryClientProtocol.cs
- MenuStrip.cs
- DependencyPropertyKind.cs
- HttpWebRequestElement.cs
- RC2CryptoServiceProvider.cs
- BasicAsyncResult.cs
- PropertyTabAttribute.cs
- DesignerActionUIStateChangeEventArgs.cs
- GeometryDrawing.cs
- AspNetSynchronizationContext.cs
- StickyNote.cs
- TextFormatterImp.cs
- SectionInformation.cs
- JournalEntryListConverter.cs
- ReachIDocumentPaginatorSerializerAsync.cs
- LockCookie.cs
- BinaryEditor.cs
- ServiceProviders.cs
- DbConnectionStringBuilder.cs
- FramingEncoders.cs
- UIntPtr.cs
- ObjectConverter.cs
- AttachedPropertyBrowsableWhenAttributePresentAttribute.cs
- TcpAppDomainProtocolHandler.cs
- SqlGatherConsumedAliases.cs
- RelationshipConverter.cs
- BaseParaClient.cs
- TargetFrameworkAttribute.cs
- ShutDownListener.cs
- LayoutEditorPart.cs
- SRef.cs
- ImageSource.cs
- ImpersonationContext.cs
- PowerStatus.cs
- TrackBarDesigner.cs
- Int16Converter.cs
- RadioButtonStandardAdapter.cs
- BaseCodePageEncoding.cs
- TypeContext.cs
- GridSplitter.cs
- ApplicationFileCodeDomTreeGenerator.cs
- UnsafeCollabNativeMethods.cs
- PartitionResolver.cs
- MetadataPropertyCollection.cs
- ApplicationDirectoryMembershipCondition.cs
- CustomAttributeBuilder.cs
- DrawingImage.cs
- NameValuePair.cs
- AnimationClockResource.cs
- ResourceDictionaryCollection.cs
- OleDbInfoMessageEvent.cs
- DbFunctionCommandTree.cs
- SystemIPInterfaceProperties.cs
- SystemKeyConverter.cs
- configsystem.cs
- ContentHostHelper.cs
- HttpApplication.cs
- ServiceNameElementCollection.cs
- Activity.cs
- DefaultWorkflowTransactionService.cs
- FormsAuthenticationModule.cs
- CompositeDuplexBindingElement.cs
- ProtectedProviderSettings.cs
- BindingCompleteEventArgs.cs
- WizardPanel.cs
- SyndicationSerializer.cs
- FontCollection.cs
- CodeMemberProperty.cs
- XmlSchemaComplexContent.cs
- CacheForPrimitiveTypes.cs
- ScrollProperties.cs
- VersionedStream.cs
- recordstatescratchpad.cs
- DependencyProperty.cs
- ComponentConverter.cs
- MimeTypeMapper.cs
- TrackingMemoryStream.cs
- EventDescriptor.cs
- Baml2006Reader.cs
- ValueSerializer.cs
- ResolvedKeyFrameEntry.cs
- ControlUtil.cs
- SharedPersonalizationStateInfo.cs
- OutputWindow.cs
- XamlFigureLengthSerializer.cs
- SymDocumentType.cs
- documentsequencetextpointer.cs
- StorageMappingItemCollection.cs
- BevelBitmapEffect.cs
- OpCellTreeNode.cs
- PrintController.cs
- SrgsRulesCollection.cs
- FormatVersion.cs
- BuildManager.cs
- XmlException.cs
- ListItemConverter.cs