Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Framework / System / Windows / WindowCollection.cs / 1 / WindowCollection.cs
//----------------------------------------------------------------------------
//
//
// Copyright (C) Microsoft Corporation. All rights reserved.
//
//
// Description:
// WindowCollection can be used to interate over all the windows
// that have been opened in the current application.
//
// History:
// 08/10/04: [....] Moved out of Application.cs to its own separate file.
//
//---------------------------------------------------------------------------
using System.Collections;
using System.Diagnostics;
namespace System.Windows
{
#region WindowCollection class
///
/// WindowCollection can be used to interate over all the windows that have been
/// opened in the current application.
///
//
public sealed class WindowCollection : ICollection
{
//-----------------------------------------------------
//
// Public Methods
//
//-----------------------------------------------------
#region Public Methods
///
/// Default Constructor
///
public WindowCollection()
{
_list = new ArrayList(1);
}
internal WindowCollection(int count)
{
Debug.Assert(count >= 0, "count must not be less than zero");
_list = new ArrayList(count);
}
#endregion Public Methods
//------------------------------------------------------
//
// Operator overload
//
//-----------------------------------------------------
#region Operator overload
///
/// Overloaded [] operator to access the WindowCollection list
///
public Window this[int index]
{
get
{
return _list[index] as Window;
}
}
#endregion Operator overload
//------------------------------------------------------
//
// IEnumerable implementation
//
//------------------------------------------------------
#region IEnumerable implementation
///
/// GetEnumerator
///
///
public IEnumerator GetEnumerator()
{
return _list.GetEnumerator();
}
#endregion IEnumerable implementation
//-------------------------------------------------------
//
// ICollection implementation (derives from IEnumerable)
//
//--------------------------------------------------------
#region ICollection implementation
///
/// CopyTo
///
///
///
void ICollection.CopyTo(Array array, int index)
{
_list.CopyTo(array, index);
}
///
/// CopyTo
///
///
///
public void CopyTo(Window[] array, int index)
{
_list.CopyTo(array, index);
}
///
/// Count property
///
public int Count
{
get
{
return _list.Count;
}
}
///
/// IsSynchronized
///
public bool IsSynchronized
{
get
{
return _list.IsSynchronized;
}
}
///
/// SyncRoot
///
public Object SyncRoot
{
get
{
return _list.SyncRoot;
}
}
#endregion ICollection implementation
//-----------------------------------------------------
//
// Internal Methods
//
//-----------------------------------------------------
#region Internal Methods
internal WindowCollection Clone()
{
WindowCollection clone;
lock (_list.SyncRoot)
{
clone = new WindowCollection(_list.Count);
for (int i = 0; i < _list.Count; i++)
{
clone._list.Add(_list[i]);
}
}
return clone;
}
internal void Remove(Window win)
{
lock (_list.SyncRoot)
{
_list.Remove(win);
}
}
internal void RemoveAt(int index)
{
lock (_list.SyncRoot)
{
_list.Remove(index);
}
}
internal int Add (Window win)
{
lock (_list.SyncRoot)
{
return _list.Add(win);
}
}
internal bool HasItem(Window win)
{
lock (_list.SyncRoot)
{
for (int i = 0; i < _list.Count; i++)
{
if (_list[i] == win)
{
return true;
}
}
}
return false;
}
#endregion Internal Methods
//-----------------------------------------------------
//
// Private Fields
//
//------------------------------------------------------
#region Private Fields
private ArrayList _list;
#endregion Private Fields
}
#endregion WindowCollection class
}
// 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
- TemplatedControlDesigner.cs
- ApplicationProxyInternal.cs
- UserValidatedEventArgs.cs
- AttachmentService.cs
- Compiler.cs
- ServiceThrottlingBehavior.cs
- MetadataCacheItem.cs
- SafeSecurityHelper.cs
- ResolveCriteriaApril2005.cs
- XmlIlVisitor.cs
- LogicalExpressionEditor.cs
- DataControlFieldCollection.cs
- XmlException.cs
- RegistryKey.cs
- DBBindings.cs
- MappingItemCollection.cs
- BasicHttpMessageCredentialType.cs
- CredentialCache.cs
- HiddenField.cs
- HasCopySemanticsAttribute.cs
- Vector3D.cs
- DataGridViewUtilities.cs
- LicenseProviderAttribute.cs
- SequentialUshortCollection.cs
- HtmlTextBoxAdapter.cs
- StateBag.cs
- Completion.cs
- BigInt.cs
- arabicshape.cs
- ClientUriBehavior.cs
- SqlXml.cs
- BinaryObjectInfo.cs
- DateTimeFormatInfo.cs
- PointKeyFrameCollection.cs
- DesignerDataView.cs
- ControlUtil.cs
- RadioButtonList.cs
- SqlDataSourceFilteringEventArgs.cs
- DataRowExtensions.cs
- DefaultPrintController.cs
- WindowsRichEditRange.cs
- CodeMethodInvokeExpression.cs
- PenContexts.cs
- AsyncOperationManager.cs
- Helper.cs
- ConfigXmlSignificantWhitespace.cs
- BufferedStream.cs
- contentDescriptor.cs
- XmlHierarchyData.cs
- BooleanKeyFrameCollection.cs
- MsmqIntegrationInputChannel.cs
- LogRecordSequence.cs
- Claim.cs
- TreeNodeClickEventArgs.cs
- ColumnReorderedEventArgs.cs
- Parsers.cs
- UnsignedPublishLicense.cs
- ThreadAbortException.cs
- StringInfo.cs
- TextEffectResolver.cs
- HttpCacheParams.cs
- AnimatedTypeHelpers.cs
- EnumUnknown.cs
- TableCellCollection.cs
- UpdateProgress.cs
- DefaultDialogButtons.cs
- RewritingValidator.cs
- HttpResponseWrapper.cs
- XmlHierarchicalDataSourceView.cs
- StyleCollection.cs
- CodeExporter.cs
- SafeProcessHandle.cs
- GotoExpression.cs
- OledbConnectionStringbuilder.cs
- TypeCodeDomSerializer.cs
- DrawingGroup.cs
- DataControlField.cs
- VerticalAlignConverter.cs
- ProviderCommandInfoUtils.cs
- HostSecurityManager.cs
- HttpHandlerAction.cs
- TableTextElementCollectionInternal.cs
- RC2CryptoServiceProvider.cs
- _TimerThread.cs
- MenuItemCollection.cs
- ComplexBindingPropertiesAttribute.cs
- MemberInfoSerializationHolder.cs
- SqlXml.cs
- NestedContainer.cs
- OletxDependentTransaction.cs
- PersonalizationStateInfo.cs
- SqlReorderer.cs
- SizeFConverter.cs
- ResourceReader.cs
- DoubleMinMaxAggregationOperator.cs
- ObsoleteAttribute.cs
- GeometryDrawing.cs
- MetadataArtifactLoaderComposite.cs
- altserialization.cs
- GestureRecognitionResult.cs