Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / 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.
Link Menu
![Network programming in C#, Network Programming in VB.NET, Network Programming in .NET](/images/book.jpg)
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- Underline.cs
- OracleEncoding.cs
- XmlAnyElementAttributes.cs
- SelectionWordBreaker.cs
- NetworkAddressChange.cs
- BehaviorEditorPart.cs
- DocumentPageViewAutomationPeer.cs
- WebProxyScriptElement.cs
- MemoryPressure.cs
- regiisutil.cs
- RawStylusSystemGestureInputReport.cs
- __FastResourceComparer.cs
- WebPartUtil.cs
- PropertyDescriptor.cs
- XamlInt32CollectionSerializer.cs
- TypeGeneratedEventArgs.cs
- RoleService.cs
- SystemEvents.cs
- TreeNodeSelectionProcessor.cs
- DataGridViewRowStateChangedEventArgs.cs
- ContourSegment.cs
- HtmlElementCollection.cs
- DataGridViewComboBoxColumn.cs
- EventPrivateKey.cs
- JoinCqlBlock.cs
- Menu.cs
- NavigationPropertySingletonExpression.cs
- MaterialCollection.cs
- ProfileService.cs
- RegistryPermission.cs
- PrePrepareMethodAttribute.cs
- ServiceNotStartedException.cs
- DataListItemCollection.cs
- _HeaderInfo.cs
- PaginationProgressEventArgs.cs
- TextTreeFixupNode.cs
- HandlerFactoryWrapper.cs
- DBDataPermissionAttribute.cs
- OdbcStatementHandle.cs
- GetRecipientListRequest.cs
- EventHandlersDesigner.cs
- FontDifferentiator.cs
- XPathSingletonIterator.cs
- StackBuilderSink.cs
- Transform3D.cs
- HtmlInputRadioButton.cs
- TypeAccessException.cs
- NetworkInformationPermission.cs
- AssociationSet.cs
- KnownTypesProvider.cs
- InstancePersistenceContext.cs
- EntityDataSourceState.cs
- DesigntimeLicenseContextSerializer.cs
- ListenerUnsafeNativeMethods.cs
- MimeWriter.cs
- Win32.cs
- FilterableAttribute.cs
- TextDecorationCollection.cs
- DataServiceStreamResponse.cs
- ChtmlTextWriter.cs
- CommonGetThemePartSize.cs
- PackageFilter.cs
- SortedDictionary.cs
- FocusManager.cs
- UpdatableWrapper.cs
- HtmlShimManager.cs
- TemplateEditingService.cs
- ListComponentEditorPage.cs
- EventLogPermissionAttribute.cs
- DataPagerFieldCommandEventArgs.cs
- StrokeSerializer.cs
- ItemCheckedEvent.cs
- VirtualDirectoryMappingCollection.cs
- RenderDataDrawingContext.cs
- WorkflowServiceBuildProvider.cs
- BasicExpressionVisitor.cs
- TextContainer.cs
- ImmutableObjectAttribute.cs
- RuleValidation.cs
- Expression.DebuggerProxy.cs
- GridViewCellAutomationPeer.cs
- EventSinkHelperWriter.cs
- DataViewListener.cs
- FreezableCollection.cs
- XmlSerializerOperationFormatter.cs
- ExceptionUtil.cs
- COM2IVsPerPropertyBrowsingHandler.cs
- WebAdminConfigurationHelper.cs
- UnicastIPAddressInformationCollection.cs
- ExpressionStringBuilder.cs
- Message.cs
- DebugView.cs
- XPathChildIterator.cs
- util.cs
- RequestTimeoutManager.cs
- TypeInformation.cs
- ConfigurationSection.cs
- InvalidPropValue.cs
- DeviceSpecificChoiceCollection.cs
- ParallelTimeline.cs