Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Framework / System / Windows / AttachedPropertyBrowsableForChildrenAttribute.cs / 1305600 / 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
- XmlChildEnumerator.cs
- StaticExtension.cs
- StandardOleMarshalObject.cs
- XslNumber.cs
- DataGridCellInfo.cs
- WindowPatternIdentifiers.cs
- Parameter.cs
- HttpCookiesSection.cs
- StorageMappingFragment.cs
- ExtensibleClassFactory.cs
- ADMembershipProvider.cs
- HttpStreamMessage.cs
- SafePipeHandle.cs
- EventTask.cs
- XamlPathDataSerializer.cs
- ModifierKeysConverter.cs
- TransactionBehavior.cs
- ThicknessAnimationUsingKeyFrames.cs
- ViewGenResults.cs
- Window.cs
- LinearGradientBrush.cs
- HotCommands.cs
- InfoCardRSAPKCS1KeyExchangeFormatter.cs
- ReturnEventArgs.cs
- WebPart.cs
- SerializationInfoEnumerator.cs
- initElementDictionary.cs
- _SslState.cs
- indexingfiltermarshaler.cs
- DetailsViewRow.cs
- _PooledStream.cs
- RoleExceptions.cs
- PolicyManager.cs
- HttpModuleActionCollection.cs
- SingleAnimation.cs
- RootBrowserWindowAutomationPeer.cs
- invalidudtexception.cs
- InteropAutomationProvider.cs
- ISCIIEncoding.cs
- XslAst.cs
- SourceInterpreter.cs
- StrokeCollection.cs
- BypassElementCollection.cs
- EmissiveMaterial.cs
- path.cs
- SqlInfoMessageEvent.cs
- LicenseContext.cs
- ObjectManager.cs
- WebPartDisplayModeCollection.cs
- ColorConvertedBitmap.cs
- PublishLicense.cs
- DataTableReaderListener.cs
- OutputCacheEntry.cs
- ListItemConverter.cs
- FormViewDeleteEventArgs.cs
- GuidConverter.cs
- ListCollectionView.cs
- AutomationAttributeInfo.cs
- WebContext.cs
- AddInDeploymentState.cs
- TypeDescriptionProvider.cs
- TableLayoutCellPaintEventArgs.cs
- DocumentOrderComparer.cs
- XmlBufferReader.cs
- RelatedImageListAttribute.cs
- XmlDomTextWriter.cs
- ListDictionaryInternal.cs
- ConfigViewGenerator.cs
- TextEffect.cs
- X509AudioLogo.cs
- SRGSCompiler.cs
- CompilerTypeWithParams.cs
- DataObjectAttribute.cs
- IncrementalCompileAnalyzer.cs
- EllipseGeometry.cs
- Line.cs
- AsyncResult.cs
- WebPartTransformerCollection.cs
- ParseChildrenAsPropertiesAttribute.cs
- lengthconverter.cs
- HtmlControlPersistable.cs
- Base64Stream.cs
- ConsumerConnectionPoint.cs
- TextEffectResolver.cs
- SecurityUniqueId.cs
- MemoryResponseElement.cs
- DataKey.cs
- ZipFileInfoCollection.cs
- FormsAuthenticationModule.cs
- PluralizationService.cs
- DataGridRowClipboardEventArgs.cs
- RTLAwareMessageBox.cs
- ResXResourceWriter.cs
- PermissionSet.cs
- WriteableBitmap.cs
- BeginStoryboard.cs
- NamedPermissionSet.cs
- AnnotationObservableCollection.cs
- Bookmark.cs
- OdbcCommandBuilder.cs