Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / wpf / src / 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. 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
- ToolStripItem.cs
- User.cs
- PartialToken.cs
- URLIdentityPermission.cs
- UInt32.cs
- ToolboxItemSnapLineBehavior.cs
- EntityAdapter.cs
- ParameterExpression.cs
- DataGridViewCellLinkedList.cs
- HttpCookieCollection.cs
- ThreadInterruptedException.cs
- relpropertyhelper.cs
- RoleManagerSection.cs
- SqlLiftWhereClauses.cs
- Not.cs
- ExtensionWindowHeader.cs
- ColumnCollection.cs
- Int16AnimationBase.cs
- counter.cs
- AuthenticationConfig.cs
- ScriptResourceHandler.cs
- ResourceDescriptionAttribute.cs
- OSFeature.cs
- BaseTemplateBuildProvider.cs
- OfTypeExpression.cs
- XmlCharacterData.cs
- WindowsSolidBrush.cs
- TracingConnectionListener.cs
- ResourceReader.cs
- LambdaCompiler.Address.cs
- PerspectiveCamera.cs
- NativeMethods.cs
- Span.cs
- CompareInfo.cs
- SimpleType.cs
- TreeView.cs
- GridViewUpdatedEventArgs.cs
- HttpCookieCollection.cs
- GZipStream.cs
- BinaryObjectInfo.cs
- Int32KeyFrameCollection.cs
- XpsSerializerFactory.cs
- SelectionEditor.cs
- WorkflowInlining.cs
- TextServicesLoader.cs
- XmlMapping.cs
- ScriptReferenceBase.cs
- FormViewUpdateEventArgs.cs
- GridViewRowCollection.cs
- CryptoKeySecurity.cs
- SafeNativeMethods.cs
- UpdateRecord.cs
- PlainXmlSerializer.cs
- XmlNodeReader.cs
- ConfigurationStrings.cs
- DocumentGridContextMenu.cs
- Certificate.cs
- DeleteBookmarkScope.cs
- UniformGrid.cs
- URI.cs
- ExpressionCopier.cs
- ToolTipService.cs
- backend.cs
- TextServicesCompartment.cs
- KeyboardInputProviderAcquireFocusEventArgs.cs
- DateTimeConverter.cs
- ScrollItemPatternIdentifiers.cs
- PropertyIDSet.cs
- ClientSideProviderDescription.cs
- DataGridPagerStyle.cs
- GlobalAllocSafeHandle.cs
- FlowDocumentReaderAutomationPeer.cs
- TabRenderer.cs
- OleDbRowUpdatedEvent.cs
- FormViewUpdatedEventArgs.cs
- ClientOptions.cs
- ObjectDataSourceMethodEventArgs.cs
- WindowsStartMenu.cs
- VisualBrush.cs
- WebBrowserPermission.cs
- Geometry3D.cs
- ManipulationCompletedEventArgs.cs
- FontSizeConverter.cs
- dataSvcMapFileLoader.cs
- ReferenceCountedObject.cs
- HotSpotCollection.cs
- ClientOptions.cs
- SqlDataSourceCache.cs
- OptimizedTemplateContentHelper.cs
- PolyBezierSegmentFigureLogic.cs
- SQLUtility.cs
- BodyGlyph.cs
- MessageEventSubscriptionService.cs
- Asn1IntegerConverter.cs
- UnsafeNativeMethods.cs
- GetPageNumberCompletedEventArgs.cs
- SharedPersonalizationStateInfo.cs
- LineInfo.cs
- EntityReference.cs
- Padding.cs