Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / 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
- MinMaxParagraphWidth.cs
- Point3DConverter.cs
- DrawingContext.cs
- ApplicationManager.cs
- PropertyTab.cs
- PlainXmlDeserializer.cs
- WorkItem.cs
- SqlWriter.cs
- EmptyImpersonationContext.cs
- MergeFilterQuery.cs
- LateBoundBitmapDecoder.cs
- TextBoxView.cs
- Directory.cs
- StorageEntityContainerMapping.cs
- OracleCommand.cs
- PhysicalOps.cs
- SrgsElementList.cs
- CellParaClient.cs
- GlyphTypeface.cs
- EncryptedData.cs
- IDispatchConstantAttribute.cs
- NativeMethods.cs
- MatrixValueSerializer.cs
- BasicExpressionVisitor.cs
- StateManagedCollection.cs
- IsolatedStorageException.cs
- EncryptedData.cs
- ByteAnimationUsingKeyFrames.cs
- FastPropertyAccessor.cs
- CommunicationException.cs
- ContourSegment.cs
- DataSourceCollectionBase.cs
- DataGridSortingEventArgs.cs
- ConnectionManager.cs
- DesignerSerializationOptionsAttribute.cs
- ManifestSignatureInformation.cs
- Byte.cs
- MetadataItem.cs
- CompiledQuery.cs
- Section.cs
- DES.cs
- HandledMouseEvent.cs
- ThemeableAttribute.cs
- InputGestureCollection.cs
- SecurityIdentifierConverter.cs
- WindowHideOrCloseTracker.cs
- ProxyWebPart.cs
- MasterPageBuildProvider.cs
- ILGenerator.cs
- SmtpCommands.cs
- TypeUtils.cs
- DispatchWrapper.cs
- ObjectKeyFrameCollection.cs
- _UriSyntax.cs
- AmbientValueAttribute.cs
- Message.cs
- TypeConverter.cs
- DrawItemEvent.cs
- ObjectDataSourceEventArgs.cs
- XmlQualifiedNameTest.cs
- ItemsPanelTemplate.cs
- validationstate.cs
- OutputBuffer.cs
- FileInfo.cs
- Visual3D.cs
- SurrogateEncoder.cs
- InkPresenterAutomationPeer.cs
- ErrorWebPart.cs
- SizeLimitedCache.cs
- RegisteredDisposeScript.cs
- Constraint.cs
- ReadWriteObjectLock.cs
- ArraySet.cs
- ElementHost.cs
- HMAC.cs
- XmlSchema.cs
- DBConnection.cs
- MethodBuilder.cs
- Underline.cs
- streamingZipPartStream.cs
- AsmxEndpointPickerExtension.cs
- LocationChangedEventArgs.cs
- ProcessThreadCollection.cs
- NavigatorOutput.cs
- XmlSerializer.cs
- ZoomingMessageFilter.cs
- ImageAttributes.cs
- PropertyDescriptor.cs
- XmlSchemaAll.cs
- MemberDomainMap.cs
- DataGridCellsPresenter.cs
- MetadataUtilsSmi.cs
- DataServiceContext.cs
- dataobject.cs
- ButtonPopupAdapter.cs
- DataPagerFieldCommandEventArgs.cs
- XmlTextReaderImplHelpers.cs
- PasswordPropertyTextAttribute.cs
- HostingEnvironment.cs
- XsdDateTime.cs