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
- XmlLinkedNode.cs
- ValueChangedEventManager.cs
- _DigestClient.cs
- TextWriter.cs
- SafeThreadHandle.cs
- StrokeDescriptor.cs
- BatchParser.cs
- _RequestCacheProtocol.cs
- QueryOutputWriter.cs
- PointF.cs
- FileDialogPermission.cs
- OracleColumn.cs
- DataGridComponentEditor.cs
- PostBackOptions.cs
- TextSearch.cs
- PanelStyle.cs
- RemotingHelper.cs
- OracleTimeSpan.cs
- CssStyleCollection.cs
- TableAdapterManagerNameHandler.cs
- BooleanConverter.cs
- OpenFileDialog.cs
- OleDbCommand.cs
- XmlLanguageConverter.cs
- DataService.cs
- DataControlImageButton.cs
- DBPropSet.cs
- HotCommands.cs
- WindowsEditBox.cs
- AddingNewEventArgs.cs
- RuntimeHelpers.cs
- InfoCardRequestException.cs
- safesecurityhelperavalon.cs
- LineUtil.cs
- XamlTreeBuilderBamlRecordWriter.cs
- CodePageUtils.cs
- Models.cs
- SafeRightsManagementQueryHandle.cs
- OleDbRowUpdatingEvent.cs
- _NestedMultipleAsyncResult.cs
- Semaphore.cs
- SqlExpander.cs
- IgnoreSection.cs
- TextContainer.cs
- NumericUpDownAcceleration.cs
- AttachInfo.cs
- ModuleBuilder.cs
- StateChangeEvent.cs
- TextElementEnumerator.cs
- VideoDrawing.cs
- FlowNode.cs
- DateTimeUtil.cs
- PartialArray.cs
- documentsequencetextpointer.cs
- Attributes.cs
- ManagementEventArgs.cs
- TransactionManager.cs
- StreamingContext.cs
- CustomSignedXml.cs
- DataFieldCollectionEditor.cs
- ExternalFile.cs
- DbConnectionStringCommon.cs
- RegistryKey.cs
- TableLayoutRowStyleCollection.cs
- documentsequencetextview.cs
- TaiwanCalendar.cs
- DataBinder.cs
- DefaultValueAttribute.cs
- CompilationUnit.cs
- LongValidatorAttribute.cs
- NamedPipeTransportManager.cs
- ImageList.cs
- SspiSafeHandles.cs
- StateChangeEvent.cs
- CrossSiteScriptingValidation.cs
- XmlStreamStore.cs
- WorkflowView.cs
- SqlClientPermission.cs
- CardSpaceSelector.cs
- SharedPersonalizationStateInfo.cs
- ProvidersHelper.cs
- XmlAttributeAttribute.cs
- TrackingCondition.cs
- _Rfc2616CacheValidators.cs
- AspProxy.cs
- WebUtil.cs
- Transform3DGroup.cs
- NativeMethods.cs
- OdbcDataReader.cs
- IisTraceWebEventProvider.cs
- StrongNameIdentityPermission.cs
- SystemColors.cs
- Ops.cs
- InputBindingCollection.cs
- XmlUtilWriter.cs
- StandardToolWindows.cs
- TreeNodeMouseHoverEvent.cs
- HostVisual.cs
- GridViewColumnHeaderAutomationPeer.cs
- Int32Rect.cs