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
- WindowsScrollBar.cs
- UInt64Converter.cs
- SamlConstants.cs
- CommentAction.cs
- CookielessHelper.cs
- _HeaderInfoTable.cs
- DataKey.cs
- GridToolTip.cs
- ObjectDataSourceStatusEventArgs.cs
- AutomationPattern.cs
- Package.cs
- MetadataCollection.cs
- IPHostEntry.cs
- ColorMap.cs
- mansign.cs
- StorageComplexTypeMapping.cs
- AsyncOperationManager.cs
- SinglePhaseEnlistment.cs
- Int32CollectionConverter.cs
- SqlUserDefinedAggregateAttribute.cs
- BrowserCapabilitiesFactory.cs
- SystemIPv4InterfaceProperties.cs
- DataIdProcessor.cs
- Timer.cs
- IpcPort.cs
- DataControlButton.cs
- SetState.cs
- ProfileModule.cs
- Content.cs
- HtmlButton.cs
- SwitchElementsCollection.cs
- TraceXPathNavigator.cs
- SqlDataReaderSmi.cs
- SymDocumentType.cs
- SqlNode.cs
- PathGradientBrush.cs
- RegisteredDisposeScript.cs
- FigureParaClient.cs
- ProxyWebPart.cs
- WebProxyScriptElement.cs
- SoapFault.cs
- ToolStripSystemRenderer.cs
- WebBrowserBase.cs
- DocumentApplicationJournalEntry.cs
- EpmCustomContentSerializer.cs
- XmlDictionary.cs
- MailMessage.cs
- AnimationTimeline.cs
- FirstMatchCodeGroup.cs
- TypeBuilder.cs
- BitmapInitialize.cs
- CurrentTimeZone.cs
- CreateUserErrorEventArgs.cs
- Util.cs
- PeerUnsafeNativeCryptMethods.cs
- AvTrace.cs
- CompilerCollection.cs
- XmlAnyElementAttribute.cs
- UserInitiatedNavigationPermission.cs
- SqlClientWrapperSmiStreamChars.cs
- AutoGeneratedFieldProperties.cs
- DescendentsWalker.cs
- StorageEntityTypeMapping.cs
- ContextStaticAttribute.cs
- XmlConvert.cs
- EastAsianLunisolarCalendar.cs
- ExpressionConverter.cs
- QueryConverter.cs
- XmlQueryStaticData.cs
- SchemaLookupTable.cs
- ObjectTag.cs
- ModelServiceImpl.cs
- OutputCacheProviderCollection.cs
- SmtpNegotiateAuthenticationModule.cs
- QilSortKey.cs
- FixedSOMPageConstructor.cs
- ProcessHost.cs
- ScrollData.cs
- MinimizableAttributeTypeConverter.cs
- MessageTransmitTraceRecord.cs
- SqlDataSourceFilteringEventArgs.cs
- BuildProviderCollection.cs
- DataGridViewSelectedRowCollection.cs
- SmiRecordBuffer.cs
- PinnedBufferMemoryStream.cs
- MimeWriter.cs
- EmptyStringExpandableObjectConverter.cs
- ScriptingSectionGroup.cs
- ItemsPanelTemplate.cs
- ExcludePathInfo.cs
- IisTraceListener.cs
- ThreadNeutralSemaphore.cs
- PublisherIdentityPermission.cs
- TriState.cs
- ElementsClipboardData.cs
- X509RecipientCertificateClientElement.cs
- BitStream.cs
- InstancePersistenceContext.cs
- TemplateControlParser.cs
- StaticFileHandler.cs