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
- WebResponse.cs
- ValidationHelper.cs
- TextRangeAdaptor.cs
- ClientSession.cs
- SafeFileMappingHandle.cs
- DockingAttribute.cs
- FlatButtonAppearance.cs
- SocketInformation.cs
- WindowsListViewGroupHelper.cs
- HexParser.cs
- Point3DCollection.cs
- OrderByExpression.cs
- QueryStringHandler.cs
- CodeSubDirectory.cs
- ApplicationCommands.cs
- SystemColorTracker.cs
- CommonXSendMessage.cs
- EntityContainerEmitter.cs
- ElementNotAvailableException.cs
- EntityDataSourceDataSelection.cs
- TypeResolver.cs
- ConfigurationManager.cs
- DeclarativeCatalogPart.cs
- SinglePageViewer.cs
- SocketAddress.cs
- RangeValuePattern.cs
- StrokeCollection.cs
- DelegatingConfigHost.cs
- Point4DConverter.cs
- ArraySegment.cs
- ListDataBindEventArgs.cs
- SpinLock.cs
- BaseDataList.cs
- StylusPointPropertyId.cs
- LabelEditEvent.cs
- DataGridTableCollection.cs
- BaseAddressElementCollection.cs
- EditorZone.cs
- ApplicationBuildProvider.cs
- messageonlyhwndwrapper.cs
- SessionEndingEventArgs.cs
- SemanticAnalyzer.cs
- ProofTokenCryptoHandle.cs
- DateTimeOffset.cs
- _UriSyntax.cs
- SafeRightsManagementPubHandle.cs
- NotCondition.cs
- URLString.cs
- FormatException.cs
- EnumValidator.cs
- FileEnumerator.cs
- FlowDecisionDesigner.xaml.cs
- XmlSchemaSimpleContent.cs
- WebPartMinimizeVerb.cs
- MatrixValueSerializer.cs
- PropertyGeneratedEventArgs.cs
- EntityUtil.cs
- MetadataFile.cs
- CryptoHandle.cs
- DataRow.cs
- FixedTextBuilder.cs
- Matrix3D.cs
- DictionaryBase.cs
- LinqDataSource.cs
- RelationshipFixer.cs
- HasCopySemanticsAttribute.cs
- XmlSchemaValidator.cs
- SequentialOutput.cs
- ZipIOCentralDirectoryFileHeader.cs
- TextServicesPropertyRanges.cs
- wgx_exports.cs
- AppliedDeviceFiltersDialog.cs
- ContentOperations.cs
- XmlSyndicationContent.cs
- MessageDispatch.cs
- RecognizerInfo.cs
- Rect3DValueSerializer.cs
- SchemaMapping.cs
- MenuItem.cs
- DelegatedStream.cs
- NetDataContractSerializer.cs
- InputLanguageEventArgs.cs
- MexHttpBindingElement.cs
- TimeStampChecker.cs
- SqlBulkCopy.cs
- TraceSwitch.cs
- WindowsToolbar.cs
- ObjectParameter.cs
- Type.cs
- BamlTreeMap.cs
- WebResponse.cs
- SelectionHighlightInfo.cs
- TreeViewCancelEvent.cs
- DocumentPaginator.cs
- PenLineCapValidation.cs
- _ConnectionGroup.cs
- SecurityElement.cs
- _ProxyRegBlob.cs
- MergeLocalizationDirectives.cs
- OleDbInfoMessageEvent.cs