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
- QuestionEventArgs.cs
- ParseHttpDate.cs
- ListItemCollection.cs
- CopyNamespacesAction.cs
- TemplateKey.cs
- ProfessionalColorTable.cs
- LinkConverter.cs
- IncrementalReadDecoders.cs
- DrawingAttributesDefaultValueFactory.cs
- ParentQuery.cs
- SqlDataSourceCache.cs
- RoutedEventHandlerInfo.cs
- RNGCryptoServiceProvider.cs
- OdbcErrorCollection.cs
- WebPartMenu.cs
- Journaling.cs
- CreateUserWizardStep.cs
- HttpModuleAction.cs
- ListViewDataItem.cs
- ProfessionalColors.cs
- BindingListCollectionView.cs
- DetailsViewCommandEventArgs.cs
- WpfXamlLoader.cs
- IdentityReference.cs
- TextureBrush.cs
- _NetworkingPerfCounters.cs
- dataprotectionpermission.cs
- DbCommandTree.cs
- HostingEnvironmentException.cs
- XmlCharacterData.cs
- IntellisenseTextBox.cs
- AuthStoreRoleProvider.cs
- SqlProvider.cs
- Object.cs
- URL.cs
- CoTaskMemUnicodeSafeHandle.cs
- GenericTypeParameterBuilder.cs
- PipeStream.cs
- SafeArrayRankMismatchException.cs
- TranslateTransform3D.cs
- ResourceDisplayNameAttribute.cs
- ArrangedElementCollection.cs
- ServiceModelActivationSectionGroup.cs
- UIElementAutomationPeer.cs
- AssemblyResourceLoader.cs
- XPathParser.cs
- SegmentInfo.cs
- DbModificationCommandTree.cs
- AssemblyBuilder.cs
- ChannelTracker.cs
- ContractInferenceHelper.cs
- XPathAxisIterator.cs
- NetworkInterface.cs
- RuntimeHandles.cs
- ListBoxItem.cs
- UInt32.cs
- TextBox.cs
- DynamicUpdateCommand.cs
- SqlExpressionNullability.cs
- TypeBinaryExpression.cs
- RawTextInputReport.cs
- DateTimeConverter.cs
- FunctionImportElement.cs
- RadialGradientBrush.cs
- ScopeElement.cs
- ListSurrogate.cs
- PipelineModuleStepContainer.cs
- OneOfScalarConst.cs
- PartitionerQueryOperator.cs
- ProviderMetadata.cs
- Int32Rect.cs
- ReversePositionQuery.cs
- SqlTrackingQuery.cs
- BlurBitmapEffect.cs
- QuaternionConverter.cs
- ScriptControlDescriptor.cs
- newinstructionaction.cs
- WinFormsUtils.cs
- ContractBase.cs
- RegexCompilationInfo.cs
- DesignConnection.cs
- SystemFonts.cs
- CodeSubDirectoriesCollection.cs
- QilInvokeLateBound.cs
- FirewallWrapper.cs
- QuaternionRotation3D.cs
- HostedTransportConfigurationBase.cs
- InstanceDescriptor.cs
- WsrmMessageInfo.cs
- WebSysDisplayNameAttribute.cs
- FacetValueContainer.cs
- MimeParameter.cs
- FixedPosition.cs
- SpeechSeg.cs
- FileEnumerator.cs
- HeaderedItemsControl.cs
- ApplicationBuildProvider.cs
- BitmapEffectGroup.cs
- LicenseContext.cs
- FileIOPermission.cs