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
- ValueChangedEventManager.cs
- IFlowDocumentViewer.cs
- ProcessHostConfigUtils.cs
- PrimitiveDataContract.cs
- ItemDragEvent.cs
- COM2ExtendedBrowsingHandler.cs
- FtpRequestCacheValidator.cs
- SystemIcmpV6Statistics.cs
- SystemIcmpV6Statistics.cs
- PrintPageEvent.cs
- CapabilitiesSection.cs
- SizeValueSerializer.cs
- ManipulationCompletedEventArgs.cs
- DetailsViewUpdatedEventArgs.cs
- HtmlControlPersistable.cs
- LoginUtil.cs
- InfoCardRSAOAEPKeyExchangeDeformatter.cs
- CompositeDataBoundControl.cs
- Operators.cs
- basenumberconverter.cs
- HttpListenerRequestUriBuilder.cs
- UrlMappingsSection.cs
- SpecialNameAttribute.cs
- Point4DConverter.cs
- Double.cs
- FixUp.cs
- StandardCommands.cs
- BoolExpressionVisitors.cs
- CrossContextChannel.cs
- Span.cs
- SymbolType.cs
- ClickablePoint.cs
- TreeSet.cs
- ParameterCollection.cs
- DBCommand.cs
- Buffer.cs
- MachinePropertyVariants.cs
- StateChangeEvent.cs
- SolidColorBrush.cs
- PointAnimation.cs
- SqlExpressionNullability.cs
- BufferModeSettings.cs
- Latin1Encoding.cs
- SqlGenerator.cs
- _ListenerRequestStream.cs
- GenericTypeParameterBuilder.cs
- VirtualPath.cs
- _HeaderInfoTable.cs
- DataKeyCollection.cs
- WebPartChrome.cs
- DependencyObjectProvider.cs
- ClientData.cs
- CodeConstructor.cs
- ToolStripSplitButton.cs
- XmlSchemaAppInfo.cs
- ByteStream.cs
- ListBoxItemAutomationPeer.cs
- ObjectManager.cs
- QueryCursorEventArgs.cs
- DbParameterHelper.cs
- LifetimeServices.cs
- isolationinterop.cs
- TextRangeSerialization.cs
- XamlReaderHelper.cs
- NumericExpr.cs
- ScrollViewerAutomationPeer.cs
- WindowInteropHelper.cs
- DataControlField.cs
- GeometryModel3D.cs
- EnvironmentPermission.cs
- FacetValues.cs
- BaseParaClient.cs
- TextTrailingCharacterEllipsis.cs
- HttpMethodAttribute.cs
- ToolStripRenderer.cs
- DynamicVirtualDiscoSearcher.cs
- HttpPostServerProtocol.cs
- ColorTransform.cs
- Attributes.cs
- PassportIdentity.cs
- XmlSchemaInclude.cs
- ObjectDataSourceView.cs
- UIElement3D.cs
- RoleGroupCollectionEditor.cs
- Opcode.cs
- InvokeMethodActivity.cs
- NativeActivityTransactionContext.cs
- GridItem.cs
- FixedPosition.cs
- TaskForm.cs
- ScriptingSectionGroup.cs
- OdbcCommandBuilder.cs
- Canvas.cs
- TableRow.cs
- XmlSchemaProviderAttribute.cs
- DbDataAdapter.cs
- EventProviderTraceListener.cs
- BuilderElements.cs
- DataBindingExpressionBuilder.cs
- DragEventArgs.cs