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
- FormsAuthenticationModule.cs
- CompilerResults.cs
- Opcode.cs
- EqualityComparer.cs
- ExtendedPropertyDescriptor.cs
- BaseConfigurationRecord.cs
- ISCIIEncoding.cs
- DefaultMemberAttribute.cs
- MulticastIPAddressInformationCollection.cs
- TableRow.cs
- TypeDelegator.cs
- EnterpriseServicesHelper.cs
- ObjectPersistData.cs
- WizardStepBase.cs
- ServiceBusyException.cs
- HtmlTableRowCollection.cs
- BitmapImage.cs
- XmlConverter.cs
- TextEffect.cs
- TemplateControlBuildProvider.cs
- VerificationException.cs
- DecoderNLS.cs
- ElementHostPropertyMap.cs
- SimpleExpression.cs
- SqlDataReaderSmi.cs
- SQLCharsStorage.cs
- DisableDpiAwarenessAttribute.cs
- ZoomPercentageConverter.cs
- XamlPathDataSerializer.cs
- DynamicFilter.cs
- HuffModule.cs
- Int16Storage.cs
- XNodeNavigator.cs
- XmlIncludeAttribute.cs
- KeyValuePair.cs
- TemplateField.cs
- BinaryMethodMessage.cs
- DropDownList.cs
- ActivityExecutionContext.cs
- TextFragmentEngine.cs
- XPathMessageContext.cs
- ProtocolsConfiguration.cs
- ScriptResourceHandler.cs
- ServiceDescriptionReflector.cs
- StickyNoteAnnotations.cs
- Emitter.cs
- StringInfo.cs
- InternalControlCollection.cs
- PathStreamGeometryContext.cs
- IIS7WorkerRequest.cs
- SynchronizedReadOnlyCollection.cs
- BCryptHashAlgorithm.cs
- TableItemStyle.cs
- ModifyActivitiesPropertyDescriptor.cs
- DbConvert.cs
- XmlReflectionMember.cs
- ClientCultureInfo.cs
- DynamicVirtualDiscoSearcher.cs
- DesignTimeDataBinding.cs
- Size3D.cs
- ConfigViewGenerator.cs
- WebResourceUtil.cs
- NavigationProgressEventArgs.cs
- Point3DAnimation.cs
- DataBinding.cs
- SelectionListDesigner.cs
- PermissionSetTriple.cs
- XmlNamespaceManager.cs
- ReadOnlyCollection.cs
- StatusBarPanelClickEvent.cs
- HashAlgorithm.cs
- PathData.cs
- ObjectDataSourceMethodEventArgs.cs
- UIPermission.cs
- UnsafeNativeMethods.cs
- DecimalAnimationBase.cs
- UserControlParser.cs
- activationcontext.cs
- TableLayoutStyleCollection.cs
- TextElementCollectionHelper.cs
- DataPagerField.cs
- ChannelDemuxer.cs
- NotificationContext.cs
- ClientSponsor.cs
- MobileUserControl.cs
- PartitionedDataSource.cs
- SqlBulkCopyColumnMappingCollection.cs
- CachedCompositeFamily.cs
- AdornerDecorator.cs
- OdbcInfoMessageEvent.cs
- followingsibling.cs
- StorageEntityContainerMapping.cs
- XamlTreeBuilder.cs
- HostProtectionPermission.cs
- ScaleTransform.cs
- SystemKeyConverter.cs
- ClipboardProcessor.cs
- WsatConfiguration.cs
- StdValidatorsAndConverters.cs
- WindowsGrip.cs