Code:
/ 4.0 / 4.0 / 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. 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
- CodeCastExpression.cs
- BinaryNode.cs
- XmlSchemaImport.cs
- OptimalBreakSession.cs
- Shape.cs
- RijndaelManagedTransform.cs
- CqlBlock.cs
- BitmapEffectDrawingContextState.cs
- BuilderPropertyEntry.cs
- WpfGeneratedKnownProperties.cs
- CategoryValueConverter.cs
- ForEachAction.cs
- MenuCommand.cs
- CompiledELinqQueryState.cs
- MouseOverProperty.cs
- WebServiceErrorEvent.cs
- SQLChars.cs
- Inline.cs
- PtsPage.cs
- TimerElapsedEvenArgs.cs
- ZeroOpNode.cs
- DynamicQueryStringParameter.cs
- ContentControl.cs
- DescendantQuery.cs
- FixedTextContainer.cs
- SemanticValue.cs
- CompositeDispatchFormatter.cs
- SchemaObjectWriter.cs
- ISFTagAndGuidCache.cs
- SharedStatics.cs
- InstanceData.cs
- CharConverter.cs
- ObjectHandle.cs
- StoreItemCollection.Loader.cs
- ButtonColumn.cs
- OutputScopeManager.cs
- BuildDependencySet.cs
- WebBrowserNavigatingEventHandler.cs
- SecurityContextTokenValidationException.cs
- ListViewItem.cs
- CommentEmitter.cs
- RemoteWebConfigurationHost.cs
- behaviorssection.cs
- QualificationDataAttribute.cs
- InteropAutomationProvider.cs
- XmlSchemaSimpleTypeUnion.cs
- SortExpressionBuilder.cs
- ApplicationBuildProvider.cs
- MulticastIPAddressInformationCollection.cs
- ResourceCategoryAttribute.cs
- GridViewSelectEventArgs.cs
- DependencyPropertyConverter.cs
- WithStatement.cs
- SignatureDescription.cs
- IMembershipProvider.cs
- ProtocolViolationException.cs
- RightsManagementPermission.cs
- TreePrinter.cs
- InProcStateClientManager.cs
- AbandonedMutexException.cs
- RuntimeHandles.cs
- ThousandthOfEmRealPoints.cs
- OwnerDrawPropertyBag.cs
- _IPv4Address.cs
- BitmapPalettes.cs
- ExceptionHelpers.cs
- FactoryGenerator.cs
- XmlNodeReader.cs
- DirectoryGroupQuery.cs
- GPRECTF.cs
- FixedSOMGroup.cs
- PolyLineSegment.cs
- NameScope.cs
- DecimalConstantAttribute.cs
- DisplayInformation.cs
- HwndSubclass.cs
- CheckBoxFlatAdapter.cs
- EnterpriseServicesHelper.cs
- DesignerSerializationOptionsAttribute.cs
- RequestCachingSection.cs
- ProcessModelInfo.cs
- XmlIgnoreAttribute.cs
- ArgIterator.cs
- TransactionBehavior.cs
- SqlNodeAnnotation.cs
- _NestedSingleAsyncResult.cs
- DiagnosticsConfigurationHandler.cs
- CatalogZoneDesigner.cs
- VisualBrush.cs
- ArithmeticException.cs
- SqlParameterCollection.cs
- QueryInterceptorAttribute.cs
- ProcessHost.cs
- DesignTimeParseData.cs
- PageThemeCodeDomTreeGenerator.cs
- CustomError.cs
- WindowsListViewItemCheckBox.cs
- TimerEventSubscriptionCollection.cs
- TraceListener.cs
- CodeGenerator.cs