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
- CodeBlockBuilder.cs
- CLSCompliantAttribute.cs
- Roles.cs
- CharKeyFrameCollection.cs
- DataSourceView.cs
- PropertyMapper.cs
- WindowsRichEditRange.cs
- ThaiBuddhistCalendar.cs
- WebUtil.cs
- PopupEventArgs.cs
- WebConfigurationHost.cs
- PropertyGridView.cs
- EntityDataSourceState.cs
- TemplateLookupAction.cs
- CodeRemoveEventStatement.cs
- ConsoleEntryPoint.cs
- BinaryObjectInfo.cs
- TraceRecord.cs
- Menu.cs
- Frame.cs
- GeneralTransform3DTo2DTo3D.cs
- Form.cs
- ObjectMemberMapping.cs
- SqlBinder.cs
- ServiceNotStartedException.cs
- CodeAttributeDeclarationCollection.cs
- HandlerMappingMemo.cs
- NetworkAddressChange.cs
- SubtreeProcessor.cs
- EntryWrittenEventArgs.cs
- DrawingContextDrawingContextWalker.cs
- LessThanOrEqual.cs
- UserControlDesigner.cs
- DataMisalignedException.cs
- CompilationLock.cs
- SessionStateContainer.cs
- EventRecordWrittenEventArgs.cs
- ASCIIEncoding.cs
- FaultDescription.cs
- CodeSnippetTypeMember.cs
- XmlToDatasetMap.cs
- ObjectSecurity.cs
- ThreadNeutralSemaphore.cs
- TextDecorationCollection.cs
- Types.cs
- SpeechRecognizer.cs
- XmlObjectSerializerReadContext.cs
- EmptyElement.cs
- ArgIterator.cs
- DataListGeneralPage.cs
- CharConverter.cs
- StateInitializationDesigner.cs
- SignatureDescription.cs
- ResourceManager.cs
- StickyNoteHelper.cs
- LogRestartAreaEnumerator.cs
- SmtpTransport.cs
- MetabaseSettingsIis7.cs
- ManagementClass.cs
- ComponentResourceKey.cs
- HeaderedItemsControl.cs
- EventLogHandle.cs
- XappLauncher.cs
- AssemblyBuilderData.cs
- XmlSchemaDocumentation.cs
- DesignColumn.cs
- ServiceBehaviorElementCollection.cs
- EventLogWatcher.cs
- ParserContext.cs
- DoubleSumAggregationOperator.cs
- BordersPage.cs
- XmlNodeChangedEventArgs.cs
- BindingUtils.cs
- Win32Native.cs
- DispatcherFrame.cs
- DesignerVerb.cs
- ErrorLog.cs
- Panel.cs
- NativeMethodsOther.cs
- ContainerControl.cs
- SatelliteContractVersionAttribute.cs
- ConnectionPoint.cs
- MenuItem.cs
- TextWriterTraceListener.cs
- AsyncCompletedEventArgs.cs
- DrawToolTipEventArgs.cs
- ClientTargetCollection.cs
- CaseStatement.cs
- InternalSafeNativeMethods.cs
- WindowsGraphics.cs
- CellQuery.cs
- DotNetATv1WindowsLogEntrySerializer.cs
- Restrictions.cs
- OrderingInfo.cs
- XPathNode.cs
- EnumDataContract.cs
- Rect3D.cs
- EmptyStringExpandableObjectConverter.cs
- ClientFactory.cs
- SharedPersonalizationStateInfo.cs