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
- AsymmetricKeyExchangeDeformatter.cs
- Soap.cs
- CollectionBase.cs
- Constraint.cs
- ObjectItemNoOpAssemblyLoader.cs
- CounterSetInstanceCounterDataSet.cs
- QueryRewriter.cs
- XmlSchemaComplexContentRestriction.cs
- RightsManagementInformation.cs
- DockProviderWrapper.cs
- ProfilePropertyNameValidator.cs
- RSACryptoServiceProvider.cs
- InheritanceAttribute.cs
- CodeIdentifiers.cs
- DataListItem.cs
- FileUtil.cs
- CellConstantDomain.cs
- VisualCollection.cs
- OrderedEnumerableRowCollection.cs
- WinFormsUtils.cs
- DispatchOperation.cs
- InfoCardMasterKey.cs
- VisualBrush.cs
- HttpWriter.cs
- CodeCommentStatement.cs
- ObjectDataProvider.cs
- SimpleHandlerFactory.cs
- DataSourceView.cs
- NetCodeGroup.cs
- RegisteredArrayDeclaration.cs
- CustomWebEventKey.cs
- TableItemPatternIdentifiers.cs
- Encoder.cs
- EdmPropertyAttribute.cs
- ObjectListCommandsPage.cs
- JsonFormatWriterGenerator.cs
- WpfSharedBamlSchemaContext.cs
- SqlConnectionHelper.cs
- localization.cs
- TemplateNameScope.cs
- RemoteTokenFactory.cs
- StopStoryboard.cs
- GenericEnumerator.cs
- ClientSideQueueItem.cs
- ScriptRegistrationManager.cs
- ExtendedPropertyDescriptor.cs
- GeometryConverter.cs
- FontDifferentiator.cs
- Oid.cs
- SqlInfoMessageEvent.cs
- GregorianCalendar.cs
- ObjectQueryProvider.cs
- PerformanceCounterPermissionEntry.cs
- IPipelineRuntime.cs
- TlsnegoTokenAuthenticator.cs
- Delegate.cs
- NativeMethods.cs
- DetailsViewInsertEventArgs.cs
- SynchronizedDispatch.cs
- XPathDocumentNavigator.cs
- PeerCollaboration.cs
- CompositionTarget.cs
- DataRelationPropertyDescriptor.cs
- ScriptResourceAttribute.cs
- ObjectCache.cs
- TextViewSelectionProcessor.cs
- SubMenuStyleCollection.cs
- HtmlWindowCollection.cs
- JobCollate.cs
- DataGrid.cs
- DataSourceCacheDurationConverter.cs
- PageRequestManager.cs
- ArgIterator.cs
- CommandSet.cs
- DataGridCell.cs
- ExecutedRoutedEventArgs.cs
- HttpApplicationStateWrapper.cs
- AnchoredBlock.cs
- StateMachineHelpers.cs
- ErrorWebPart.cs
- ContactManager.cs
- DefaultValidator.cs
- ActivityTypeResolver.xaml.cs
- Misc.cs
- ECDiffieHellmanCng.cs
- SqlCrossApplyToCrossJoin.cs
- querybuilder.cs
- SqlDataReaderSmi.cs
- MiniModule.cs
- WebBrowserDesigner.cs
- RoutedEvent.cs
- Exception.cs
- AccessControlList.cs
- XMLSyntaxException.cs
- DispatcherTimer.cs
- HtmlControlPersistable.cs
- GridItemCollection.cs
- StreamInfo.cs
- UpdatePanelTriggerCollection.cs
- WorkflowOperationErrorHandler.cs