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
- PagesChangedEventArgs.cs
- ListSortDescriptionCollection.cs
- ConnectionManagementElement.cs
- TraceShell.cs
- Double.cs
- DataGridViewAccessibleObject.cs
- Tablet.cs
- IndexedGlyphRun.cs
- DataReaderContainer.cs
- CustomAttributeFormatException.cs
- BinaryEditor.cs
- QilName.cs
- ProvidersHelper.cs
- ObjectTypeMapping.cs
- ZipIOFileItemStream.cs
- ToolStripGripRenderEventArgs.cs
- InputReferenceExpression.cs
- SqlDependency.cs
- SymLanguageType.cs
- DesignerActionItemCollection.cs
- Base64Decoder.cs
- ThrowHelper.cs
- DataGridCell.cs
- LinqDataView.cs
- ModelTypeConverter.cs
- TableStyle.cs
- TextChange.cs
- LockCookie.cs
- SqlErrorCollection.cs
- AssemblySettingAttributes.cs
- Point3DAnimationBase.cs
- ItemsPresenter.cs
- DefaultEventAttribute.cs
- XmlRootAttribute.cs
- ServerIdentity.cs
- StylusOverProperty.cs
- Membership.cs
- MergablePropertyAttribute.cs
- mediapermission.cs
- WorkflowDesignerMessageFilter.cs
- DomNameTable.cs
- InputLanguageSource.cs
- XmlSchemaElement.cs
- PackageProperties.cs
- Int64.cs
- ArrangedElement.cs
- HostUtils.cs
- DefaultSection.cs
- Facet.cs
- SymbolMethod.cs
- DataGridPageChangedEventArgs.cs
- TreeBuilderXamlTranslator.cs
- SystemWebSectionGroup.cs
- WebReferenceOptions.cs
- RIPEMD160Managed.cs
- InternalBufferOverflowException.cs
- ColorContext.cs
- GeneralTransform.cs
- COM2AboutBoxPropertyDescriptor.cs
- TypedTableGenerator.cs
- WebMessageEncoderFactory.cs
- DBSqlParserColumn.cs
- InternalCache.cs
- SkewTransform.cs
- DetailsViewPageEventArgs.cs
- ClientTargetSection.cs
- _SslStream.cs
- ToolStripScrollButton.cs
- HttpClientProtocol.cs
- IntegrationExceptionEventArgs.cs
- CryptoStream.cs
- HtmlInputControl.cs
- SecurityContext.cs
- DataGridItemAutomationPeer.cs
- Console.cs
- DbQueryCommandTree.cs
- CSharpCodeProvider.cs
- HybridDictionary.cs
- WsdlInspector.cs
- DocumentsTrace.cs
- CapiHashAlgorithm.cs
- UniqueEventHelper.cs
- BinaryConverter.cs
- SpnEndpointIdentity.cs
- VectorAnimationUsingKeyFrames.cs
- Form.cs
- CacheMemory.cs
- DragDrop.cs
- EntityDataSource.cs
- RoutedCommand.cs
- WebBrowserNavigatedEventHandler.cs
- DataControlFieldCollection.cs
- ToolStripContainer.cs
- WorkflowRuntime.cs
- ReliabilityContractAttribute.cs
- OleDbPermission.cs
- OracleCommandSet.cs
- DbExpressionBuilder.cs
- SafeCoTaskMem.cs
- PersonalizableAttribute.cs