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
- dataprotectionpermission.cs
- KeyGestureValueSerializer.cs
- MasterPage.cs
- CodeCommentStatementCollection.cs
- RemotingException.cs
- SudsParser.cs
- SqlConnectionHelper.cs
- WindowsImpersonationContext.cs
- Base64Encoder.cs
- BitmapCodecInfoInternal.cs
- SequentialOutput.cs
- ZeroOpNode.cs
- NativeMethodsCLR.cs
- Screen.cs
- Table.cs
- NGCSerializationManager.cs
- XmlNamespaceMapping.cs
- DataSourceCache.cs
- Transactions.cs
- DataTablePropertyDescriptor.cs
- LingerOption.cs
- OleDbStruct.cs
- TimelineCollection.cs
- Dynamic.cs
- MethodBuilderInstantiation.cs
- ThreadInterruptedException.cs
- AssemblyAttributesGoHere.cs
- ScriptHandlerFactory.cs
- X509AudioLogo.cs
- XmlDataDocument.cs
- TreeNodeEventArgs.cs
- CallbackValidator.cs
- DoubleAnimation.cs
- ConfigurationSchemaErrors.cs
- WindowsStatusBar.cs
- BitmapEffectDrawingContextState.cs
- ConfigXmlText.cs
- xmlsaver.cs
- StructuredTypeEmitter.cs
- DataGridViewImageCell.cs
- SqlCacheDependencyDatabaseCollection.cs
- AutoResetEvent.cs
- WindowsImpersonationContext.cs
- JumpTask.cs
- ErrorStyle.cs
- StringAnimationUsingKeyFrames.cs
- SqlResolver.cs
- ErrorWebPart.cs
- RenderDataDrawingContext.cs
- ProxyWebPartConnectionCollection.cs
- RowParagraph.cs
- InternalTransaction.cs
- PermissionRequestEvidence.cs
- SrgsOneOf.cs
- ActionMismatchAddressingException.cs
- TagMapCollection.cs
- DeflateStream.cs
- XsltException.cs
- JsonStringDataContract.cs
- UrlMappingsModule.cs
- AppendHelper.cs
- TextElement.cs
- DllNotFoundException.cs
- AppendHelper.cs
- Repeater.cs
- GridEntry.cs
- InnerItemCollectionView.cs
- SByte.cs
- BamlRecordWriter.cs
- WebPageTraceListener.cs
- SelectorAutomationPeer.cs
- LinqDataSourceDeleteEventArgs.cs
- ServerValidateEventArgs.cs
- Menu.cs
- QueryInterceptorAttribute.cs
- XmlNotation.cs
- DataPointer.cs
- basemetadatamappingvisitor.cs
- TheQuery.cs
- DefinitionBase.cs
- SmtpNegotiateAuthenticationModule.cs
- HwndHostAutomationPeer.cs
- SystemIPv6InterfaceProperties.cs
- LassoHelper.cs
- QuaternionAnimation.cs
- PropertyTabAttribute.cs
- XslTransform.cs
- MenuItem.cs
- ThreadStateException.cs
- FixedElement.cs
- SqlLiftIndependentRowExpressions.cs
- XmlQueryContext.cs
- SessionEndingCancelEventArgs.cs
- DataTableReaderListener.cs
- MailSettingsSection.cs
- TimeSpanMinutesConverter.cs
- PhysicalOps.cs
- ActivityIdHeader.cs
- RootBrowserWindowProxy.cs
- CheckBoxBaseAdapter.cs