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
- BitmapMetadata.cs
- TimestampInformation.cs
- DesignerActionMethodItem.cs
- _DisconnectOverlappedAsyncResult.cs
- OdbcTransaction.cs
- SqlXmlStorage.cs
- EntityContainerAssociationSet.cs
- BaseDataBoundControlDesigner.cs
- ClickablePoint.cs
- StylusPlugin.cs
- TextParagraph.cs
- EditorZoneBase.cs
- XmlLanguageConverter.cs
- AppDomain.cs
- WindowsTokenRoleProvider.cs
- DoubleCollectionConverter.cs
- TrustManagerPromptUI.cs
- WebPartEditorCancelVerb.cs
- ProcessRequestArgs.cs
- SqlFunctionAttribute.cs
- FilteredXmlReader.cs
- SiteMapPath.cs
- AssertUtility.cs
- NavigationPropertySingletonExpression.cs
- AlgoModule.cs
- HttpModuleCollection.cs
- SHA512Cng.cs
- WarningException.cs
- TreeNodeBindingCollection.cs
- FilterException.cs
- Object.cs
- ImageInfo.cs
- AttributeCollection.cs
- CultureInfo.cs
- ConcurrentQueue.cs
- TabControlToolboxItem.cs
- DetailsViewModeEventArgs.cs
- SourceFilter.cs
- PixelFormatConverter.cs
- SmtpCommands.cs
- UIElementHelper.cs
- DecimalMinMaxAggregationOperator.cs
- NamedPipeAppDomainProtocolHandler.cs
- TraceSource.cs
- TextWriterEngine.cs
- ActionNotSupportedException.cs
- ToolCreatedEventArgs.cs
- Speller.cs
- HtmlUtf8RawTextWriter.cs
- SchemaTypeEmitter.cs
- AssemblyBuilder.cs
- NamespaceQuery.cs
- CacheEntry.cs
- Identifier.cs
- UseManagedPresentationElement.cs
- XmlCountingReader.cs
- XmlSerializationGeneratedCode.cs
- Method.cs
- CodeMemberEvent.cs
- AppDomainShutdownMonitor.cs
- GrammarBuilderWildcard.cs
- KeyValuePairs.cs
- TableParaClient.cs
- BinHexEncoder.cs
- OrderPreservingMergeHelper.cs
- SafeFileHandle.cs
- TrackingProfile.cs
- IDispatchConstantAttribute.cs
- hresults.cs
- Hash.cs
- Transform3D.cs
- Currency.cs
- LinearGradientBrush.cs
- ActivityXRefConverter.cs
- AdapterDictionary.cs
- HtmlToClrEventProxy.cs
- WebServiceClientProxyGenerator.cs
- SafeRightsManagementQueryHandle.cs
- DesignSurfaceCollection.cs
- ImageMapEventArgs.cs
- _HelperAsyncResults.cs
- SqlXmlStorage.cs
- ToolStripSystemRenderer.cs
- ProvidePropertyAttribute.cs
- WebRequestModuleElement.cs
- RepeatBehavior.cs
- RuntimeWrappedException.cs
- DoubleConverter.cs
- NonParentingControl.cs
- BatchParser.cs
- ParameterBuilder.cs
- AnonymousIdentificationModule.cs
- Screen.cs
- StylusPointCollection.cs
- TextServicesDisplayAttributePropertyRanges.cs
- TypeReference.cs
- RenderCapability.cs
- FactoryGenerator.cs
- TransformerConfigurationWizardBase.cs
- DataViewSettingCollection.cs