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
- DataPagerField.cs
- XmlAtomicValue.cs
- CSharpCodeProvider.cs
- ObjectListDataBindEventArgs.cs
- SqlServer2KCompatibilityAnnotation.cs
- XMLUtil.cs
- safelinkcollection.cs
- HealthMonitoringSectionHelper.cs
- Rect.cs
- ServerValidateEventArgs.cs
- StaticSiteMapProvider.cs
- OpCodes.cs
- webeventbuffer.cs
- RequestTimeoutManager.cs
- ColorContextHelper.cs
- InputManager.cs
- XmlElementList.cs
- QuaternionIndependentAnimationStorage.cs
- DocumentPageTextView.cs
- SqlBulkCopyColumnMapping.cs
- DispatchWrapper.cs
- VirtualPathProvider.cs
- ActivityDesignerResources.cs
- ToolstripProfessionalRenderer.cs
- XmlTextReaderImpl.cs
- QilNode.cs
- KeyValueSerializer.cs
- Function.cs
- Vector3DAnimationBase.cs
- ScrollChangedEventArgs.cs
- NetNamedPipeSecurityElement.cs
- HtmlInputImage.cs
- PictureBox.cs
- HttpListenerPrefixCollection.cs
- SHA1.cs
- ProcessHost.cs
- PublishLicense.cs
- AmbientLight.cs
- TextElement.cs
- TaiwanLunisolarCalendar.cs
- StrokeCollectionDefaultValueFactory.cs
- WebPartDisplayModeEventArgs.cs
- PerspectiveCamera.cs
- LinqDataSourceView.cs
- Variant.cs
- HtmlTextArea.cs
- RuleProcessor.cs
- WindowsListView.cs
- Pen.cs
- ByteStorage.cs
- TextTreeUndoUnit.cs
- OneToOneMappingSerializer.cs
- SystemThemeKey.cs
- RowSpanVector.cs
- CalloutQueueItem.cs
- SurrogateSelector.cs
- DispatchChannelSink.cs
- DataGridTable.cs
- ReadOnlyAttribute.cs
- COM2PropertyBuilderUITypeEditor.cs
- SrgsItemList.cs
- ContainerUtilities.cs
- ContentValidator.cs
- XmlEventCache.cs
- BaseProcessor.cs
- WebPartUtil.cs
- DataTableNewRowEvent.cs
- ValueQuery.cs
- ExtendedProtectionPolicy.cs
- ArgumentReference.cs
- TypeSemantics.cs
- RemotingClientProxy.cs
- ChildrenQuery.cs
- Label.cs
- RowUpdatedEventArgs.cs
- WorkflowRuntimeServiceElement.cs
- ScrollItemProviderWrapper.cs
- CompilerError.cs
- CodeSubDirectory.cs
- TrustLevel.cs
- InstanceCreationEditor.cs
- _NegoState.cs
- PropertyBuilder.cs
- LinqDataSourceSelectEventArgs.cs
- SettingsPropertyIsReadOnlyException.cs
- XPathScanner.cs
- Number.cs
- IntPtr.cs
- IdnMapping.cs
- SchemaConstraints.cs
- SortedList.cs
- QueueException.cs
- RawStylusActions.cs
- DataGridClipboardHelper.cs
- ObjectIDGenerator.cs
- GeneralTransform3D.cs
- DataGridBoolColumn.cs
- CookieParameter.cs
- Helper.cs
- GPPOINTF.cs