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
- XmlTextReaderImplHelpers.cs
- TextDecoration.cs
- ConfigUtil.cs
- SharedUtils.cs
- GetPageNumberCompletedEventArgs.cs
- StyleHelper.cs
- XmlAttributeAttribute.cs
- RijndaelManaged.cs
- OuterGlowBitmapEffect.cs
- TextLineBreak.cs
- WSHttpSecurityElement.cs
- Environment.cs
- ScriptResourceAttribute.cs
- DirectionalLight.cs
- DialogResultConverter.cs
- SqlUnionizer.cs
- IndexedString.cs
- AddValidationError.cs
- ImageFormat.cs
- DiscoveryServerProtocol.cs
- ContractReference.cs
- VariableElement.cs
- AuthenticatedStream.cs
- Validator.cs
- GACIdentityPermission.cs
- StylusPointPropertyInfo.cs
- XmlElementList.cs
- SpotLight.cs
- EndpointAddress.cs
- VirtualizingStackPanel.cs
- WebServiceHostFactory.cs
- StringStorage.cs
- CaseStatementSlot.cs
- XsltSettings.cs
- PermissionSet.cs
- ObjectConverter.cs
- ObjectManager.cs
- WizardSideBarListControlItemEventArgs.cs
- CodeAssignStatement.cs
- InputScopeNameConverter.cs
- DataStorage.cs
- IndexedString.cs
- MatrixKeyFrameCollection.cs
- SqlVersion.cs
- ToolStripContentPanel.cs
- hresults.cs
- SqlFlattener.cs
- KeyValueInternalCollection.cs
- TextEditorMouse.cs
- SvcMapFileLoader.cs
- VolatileResourceManager.cs
- ConnectionPoolManager.cs
- TypeFieldSchema.cs
- OleDbDataReader.cs
- TextBreakpoint.cs
- ASCIIEncoding.cs
- TaskHelper.cs
- DispatchWrapper.cs
- SelectorAutomationPeer.cs
- PeerEndPoint.cs
- Attributes.cs
- WindowsGraphicsWrapper.cs
- ClassImporter.cs
- ContentDisposition.cs
- safemediahandle.cs
- XmlCharCheckingWriter.cs
- UmAlQuraCalendar.cs
- TextFormatter.cs
- ApplicationException.cs
- WebPartVerbCollection.cs
- XmlUTF8TextWriter.cs
- DataTableMapping.cs
- DescendantOverDescendantQuery.cs
- Viewport3DVisual.cs
- BitStack.cs
- OutputCacheSection.cs
- XPathItem.cs
- ImageClickEventArgs.cs
- CheckPair.cs
- SecurityResources.cs
- TypeAccessException.cs
- UIElementParagraph.cs
- ToolStripDropDown.cs
- EventListener.cs
- OdbcPermission.cs
- NativeMethods.cs
- pingexception.cs
- StylusButtonEventArgs.cs
- XmlIlGenerator.cs
- PointLight.cs
- ComboBox.cs
- TriggerAction.cs
- UTF32Encoding.cs
- EntityDesignerBuildProvider.cs
- SqlUnionizer.cs
- SimpleFieldTemplateUserControl.cs
- DebugView.cs
- ClientType.cs
- GridViewPageEventArgs.cs
- DataGridViewButtonColumn.cs