Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Framework / System / Windows / Controls / VirtualizingPanel.cs / 1 / VirtualizingPanel.cs
//---------------------------------------------------------------------------- // // Copyright (C) Microsoft Corporation. All rights reserved. // //--------------------------------------------------------------------------- using MS.Internal; using MS.Utility; using System; using System.Collections; using System.Collections.Generic; using System.Collections.Specialized; using System.ComponentModel; using System.Windows.Media; using System.Windows.Controls.Primitives; // IItemContainerGenerator namespace System.Windows.Controls { ////// A base class that provides access to information that is useful for panels that with to implement virtualization. /// public abstract class VirtualizingPanel : Panel { ////// The default constructor. /// protected VirtualizingPanel() : base(true) { } ////// The generator associated with this panel. /// public IItemContainerGenerator ItemContainerGenerator { get { return Generator; } } ////// Adds a child to the InternalChildren collection. /// This method is meant to be used when a virtualizing panel /// generates a new child. This method circumvents some validation /// that occurs in UIElementCollection.Add. /// /// Child to add. protected void AddInternalChild(UIElement child) { AddInternalChild(InternalChildren, child); } ////// Inserts a child into the InternalChildren collection. /// This method is meant to be used when a virtualizing panel /// generates a new child. This method circumvents some validation /// that occurs in UIElementCollection.Insert. /// /// The index at which to insert the child. /// Child to insert. protected void InsertInternalChild(int index, UIElement child) { InsertInternalChild(InternalChildren, index, child); } ////// Removes a child from the InternalChildren collection. /// This method is meant to be used when a virtualizing panel /// re-virtualizes a new child. This method circumvents some validation /// that occurs in UIElementCollection.RemoveRange. /// /// /// protected void RemoveInternalChildRange(int index, int range) { RemoveInternalChildRange(InternalChildren, index, range); } // This is internal as an optimization for VirtualizingStackPanel (so it doesn't need to re-query InternalChildren repeatedly) internal static void AddInternalChild(UIElementCollection children, UIElement child) { children.AddInternal(child); } // This is internal as an optimization for VirtualizingStackPanel (so it doesn't need to re-query InternalChildren repeatedly) internal static void InsertInternalChild(UIElementCollection children, int index, UIElement child) { children.InsertInternal(index, child); } // This is internal as an optimization for VirtualizingStackPanel (so it doesn't need to re-query InternalChildren repeatedly) internal static void RemoveInternalChildRange(UIElementCollection children, int index, int range) { children.RemoveRangeInternal(index, range); } ////// Called when the Items collection associated with the containing ItemsControl changes. /// /// sender /// Event arguments protected virtual void OnItemsChanged(object sender, ItemsChangedEventArgs args) { } ////// Called when the UI collection of children is cleared by the base Panel class. /// protected virtual void OnClearChildren() { } ////// Generates the item at the specified index and calls BringIntoView on it. /// /// Specify the item index that should become visible protected internal virtual void BringIndexIntoView(int index) { } internal override void OnItemsChangedInternal(object sender, ItemsChangedEventArgs args) { switch (args.Action) { case NotifyCollectionChangedAction.Add: case NotifyCollectionChangedAction.Remove: case NotifyCollectionChangedAction.Replace: case NotifyCollectionChangedAction.Move: // Don't allow Panel's code to run for add/remove/replace/move break; default: base.OnItemsChangedInternal(sender, args); break; } OnItemsChanged(sender, args); } internal override void OnClearChildrenInternal() { OnClearChildren(); } } } // 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
- ProcessThread.cs
- BidOverLoads.cs
- QueryCursorEventArgs.cs
- PerformanceCounterLib.cs
- PerfCounters.cs
- HMACMD5.cs
- ResourcePermissionBase.cs
- FixedTextSelectionProcessor.cs
- PropertySet.cs
- ThemeInfoAttribute.cs
- SourceSwitch.cs
- BooleanFunctions.cs
- EventSinkHelperWriter.cs
- AssemblyBuilder.cs
- Int32RectValueSerializer.cs
- RightsManagementEncryptionTransform.cs
- SchemaLookupTable.cs
- RegexCompiler.cs
- DayRenderEvent.cs
- XmlDocumentSurrogate.cs
- PrintPreviewGraphics.cs
- ToolStripRendererSwitcher.cs
- PeerContact.cs
- DrawingAttributeSerializer.cs
- NativeObjectSecurity.cs
- Math.cs
- EventBuilder.cs
- ResolveNameEventArgs.cs
- LassoSelectionBehavior.cs
- DataFormats.cs
- BaseValidatorDesigner.cs
- CheckBoxField.cs
- ToolstripProfessionalRenderer.cs
- DecoratedNameAttribute.cs
- IncrementalCompileAnalyzer.cs
- AssemblyName.cs
- StringFreezingAttribute.cs
- ClientConfigPaths.cs
- RtfNavigator.cs
- Internal.cs
- _SslState.cs
- ControlParser.cs
- BooleanExpr.cs
- RoleManagerModule.cs
- AdditionalEntityFunctions.cs
- XmlSchemaAny.cs
- Schema.cs
- KeyFrames.cs
- XmlDataImplementation.cs
- UniqueIdentifierService.cs
- SecurityElement.cs
- WebServiceEnumData.cs
- ProxyWebPartManager.cs
- MaterialGroup.cs
- Int32Animation.cs
- QueryConverter.cs
- ClientRuntimeConfig.cs
- SymmetricKey.cs
- CustomErrorsSection.cs
- VirtualPath.cs
- MarkerProperties.cs
- XmlSchemaComplexType.cs
- WebPartVerbCollection.cs
- Frame.cs
- PointHitTestResult.cs
- AutoGeneratedField.cs
- WindowsImpersonationContext.cs
- BoundField.cs
- ServicePoint.cs
- SqlUdtInfo.cs
- AvtEvent.cs
- XamlStream.cs
- Tile.cs
- File.cs
- SRGSCompiler.cs
- ChannelManager.cs
- EventEntry.cs
- Activator.cs
- FileUpload.cs
- PropertyValueChangedEvent.cs
- RootCodeDomSerializer.cs
- OutOfMemoryException.cs
- SrgsElement.cs
- MetadataWorkspace.cs
- SplineKeyFrames.cs
- TraceSection.cs
- CompoundFileReference.cs
- MenuCommand.cs
- ZeroOpNode.cs
- wpf-etw.cs
- CopyCodeAction.cs
- IdentityHolder.cs
- Documentation.cs
- XmlNavigatorFilter.cs
- MarkupWriter.cs
- HierarchicalDataSourceControl.cs
- StringArrayEditor.cs
- JournalEntryStack.cs
- SmiEventStream.cs
- DataGridViewDataErrorEventArgs.cs