Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Framework / System / Windows / AttachedPropertyBrowsableForChildrenAttribute.cs / 1305600 / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- UrlMappingsModule.cs
- CornerRadius.cs
- UpdateTranslator.cs
- XamlClipboardData.cs
- SafeHandles.cs
- ValueExpressions.cs
- XmlCollation.cs
- __Filters.cs
- BitVector32.cs
- Executor.cs
- SvcFileManager.cs
- XmlException.cs
- ExpressionNormalizer.cs
- MeshGeometry3D.cs
- HitTestParameters3D.cs
- GraphicsContainer.cs
- DataBoundControlHelper.cs
- GetReadStreamResult.cs
- DependentList.cs
- ButtonField.cs
- WorkflowTimerService.cs
- ClientApiGenerator.cs
- BezierSegment.cs
- ObjectDataSourceStatusEventArgs.cs
- HtmlLink.cs
- DataServiceQueryProvider.cs
- DataStreams.cs
- _KerberosClient.cs
- RemoveStoryboard.cs
- DbConvert.cs
- XmlDataProvider.cs
- sqlinternaltransaction.cs
- FormatPage.cs
- ShapingWorkspace.cs
- BaseDataListPage.cs
- AttachmentService.cs
- GlobalizationSection.cs
- AuthorizationRule.cs
- ErrorWebPart.cs
- DbProviderFactory.cs
- ContextStaticAttribute.cs
- WriteTimeStream.cs
- SmtpSection.cs
- BindingContext.cs
- XmlSchemaAttributeGroup.cs
- DoubleAnimationBase.cs
- MiniAssembly.cs
- DbProviderFactories.cs
- InputEventArgs.cs
- WeakEventManager.cs
- NamespaceEmitter.cs
- TreeWalker.cs
- HttpModuleCollection.cs
- ListViewDataItem.cs
- QuaternionValueSerializer.cs
- PaintValueEventArgs.cs
- XmlNullResolver.cs
- ObjectViewListener.cs
- KnownBoxes.cs
- IDQuery.cs
- NestPullup.cs
- SkipStoryboardToFill.cs
- UpdateManifestForBrowserApplication.cs
- Soap.cs
- DesignerActionVerbList.cs
- WithParamAction.cs
- RectAnimationBase.cs
- RectangleConverter.cs
- StringExpressionSet.cs
- PermissionSetTriple.cs
- SchemaTypeEmitter.cs
- BaseCollection.cs
- DecoderFallback.cs
- ValidationErrorEventArgs.cs
- FixUpCollection.cs
- RectAnimationUsingKeyFrames.cs
- Fx.cs
- ClrProviderManifest.cs
- NameValuePermission.cs
- BooleanToVisibilityConverter.cs
- UrlAuthorizationModule.cs
- ExpressionsCollectionConverter.cs
- PrincipalPermission.cs
- RefreshPropertiesAttribute.cs
- TreePrinter.cs
- DataSourceHelper.cs
- MethodAccessException.cs
- WindowsTooltip.cs
- HttpApplicationFactory.cs
- TextServicesManager.cs
- InternalCompensate.cs
- XmlAtomicValue.cs
- FontStyles.cs
- ErrorBehavior.cs
- ModifierKeysValueSerializer.cs
- ApplicationId.cs
- InvalidCastException.cs
- PanningMessageFilter.cs
- IsolatedStorageFilePermission.cs
- SqlXml.cs