Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Framework / System / Windows / AttachedPropertyBrowsableForChildrenAttribute.cs / 1 / AttachedPropertyBrowsableForChildrenAttribute.cs
namespace System.Windows { using System; ////// This attribute declares that a property is visible when the /// property owner is a parent of another element. For example, /// Canvas.Left is only useful on elements parented within the /// canvas. The class supports two types of tree walks: a shallow /// walk, the default which requires that the immediate parent be the /// owner type of the property, and a deep walk, declared by setting /// IncludeDescendants to true and requires that the owner type be /// somewhere in the parenting hierarchy. /// [AttributeUsage(AttributeTargets.Method, AllowMultiple = false)] public sealed class AttachedPropertyBrowsableForChildrenAttribute : AttachedPropertyBrowsableAttribute { //------------------------------------------------------ // // Constructors // //----------------------------------------------------- ////// Creates a new AttachedPropertyBrowsableForChildrenAttribute. /// public AttachedPropertyBrowsableForChildrenAttribute() { } //----------------------------------------------------- // // Public Properties // //----------------------------------------------------- ////// Gets or sets if the property should be browsable for just the /// immediate children (false) or all children (true). /// public bool IncludeDescendants { get { return _includeDescendants; } set { _includeDescendants = value; } } //------------------------------------------------------ // // Public Methods // //----------------------------------------------------- ////// Overrides Object.Equals to implement correct equality semantics for this /// attribute. /// public override bool Equals(object obj) { AttachedPropertyBrowsableForChildrenAttribute other = obj as AttachedPropertyBrowsableForChildrenAttribute; if (other == null) return false; return _includeDescendants == other._includeDescendants; } ////// Overrides Object.GetHashCode to implement correct hashing semantics. /// public override int GetHashCode() { return _includeDescendants.GetHashCode(); } //------------------------------------------------------ // // Internal Methods // //------------------------------------------------------ ////// Returns true if the object provided is the immediate logical /// child (if IncludeDescendants is false) or any logical child /// (if IncludeDescendants is true). /// internal override bool IsBrowsable(DependencyObject d, DependencyProperty dp) { if (d == null) throw new ArgumentNullException("d"); if (dp == null) throw new ArgumentNullException("dp"); DependencyObject walk = d; Type ownerType = dp.OwnerType; do { walk = FrameworkElement.GetFrameworkParent(walk); if (walk != null && ownerType.IsInstanceOfType(walk)) { return true; } } while (_includeDescendants && walk != null); return false; } //----------------------------------------------------- // // Private Fields // //------------------------------------------------------ private bool _includeDescendants; } } // 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
- ExpressionLink.cs
- TreeNodeSelectionProcessor.cs
- SchemaTableOptionalColumn.cs
- KeyGestureValueSerializer.cs
- QilInvokeEarlyBound.cs
- RoleGroup.cs
- Convert.cs
- CodeTypeDelegate.cs
- ExtractedStateEntry.cs
- HandlerBase.cs
- FocusTracker.cs
- ProcessStartInfo.cs
- ErrorTolerantObjectWriter.cs
- XmlComplianceUtil.cs
- DbConnectionPoolCounters.cs
- GPStream.cs
- Comparer.cs
- DateTimeFormatInfoScanner.cs
- QueryRewriter.cs
- TypeBinaryExpression.cs
- WeakReferenceList.cs
- ListViewTableCell.cs
- RtfNavigator.cs
- SqlConnectionStringBuilder.cs
- SchemaElementDecl.cs
- GridViewColumnHeaderAutomationPeer.cs
- XmlSchemaFacet.cs
- HttpContextWrapper.cs
- EventDescriptorCollection.cs
- MessageSecurityProtocolFactory.cs
- Lasso.cs
- FactoryGenerator.cs
- XmlLinkedNode.cs
- SafeHandle.cs
- BitmapInitialize.cs
- _AutoWebProxyScriptEngine.cs
- NavigationPropertyEmitter.cs
- DockPattern.cs
- ConfigDefinitionUpdates.cs
- milrender.cs
- ModuleConfigurationInfo.cs
- ProjectionPruner.cs
- Pair.cs
- QilIterator.cs
- TemplateKey.cs
- DbDataAdapter.cs
- PasswordDeriveBytes.cs
- PhysicalOps.cs
- ApplicationHost.cs
- Ref.cs
- ControlCachePolicy.cs
- RectAnimationBase.cs
- OptimizerPatterns.cs
- SqlConnectionStringBuilder.cs
- WebServiceData.cs
- CacheMemory.cs
- SynchronizedInputHelper.cs
- FormViewInsertEventArgs.cs
- AssemblyContextControlItem.cs
- DesignerAttribute.cs
- XPathItem.cs
- DateTimeOffset.cs
- ImmComposition.cs
- XmlSchemaElement.cs
- LineUtil.cs
- ContentElement.cs
- AnnotationComponentManager.cs
- ScrollEventArgs.cs
- SvcMapFileSerializer.cs
- DataGridLinkButton.cs
- IImplicitResourceProvider.cs
- AppDomainShutdownMonitor.cs
- CharacterString.cs
- ConnectionsZoneAutoFormat.cs
- TakeOrSkipQueryOperator.cs
- MetadataArtifactLoaderXmlReaderWrapper.cs
- FlowLayout.cs
- FormViewDeleteEventArgs.cs
- CreateWorkflowOwnerCommand.cs
- ImageSource.cs
- ManualResetEvent.cs
- FacetValueContainer.cs
- PhysicalOps.cs
- NativeCppClassAttribute.cs
- ServiceOperationWrapper.cs
- TextParaClient.cs
- RadioButtonRenderer.cs
- VariantWrapper.cs
- IISUnsafeMethods.cs
- DataGridViewCellFormattingEventArgs.cs
- WindowsAuthenticationEventArgs.cs
- HtmlTableCellCollection.cs
- ZipIOLocalFileBlock.cs
- CaseExpr.cs
- BufferBuilder.cs
- ConfigurationManagerInternal.cs
- DatatypeImplementation.cs
- TextAutomationPeer.cs
- DbDataAdapter.cs
- ThreadTrace.cs