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

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- WinFormsSpinner.cs
- TripleDES.cs
- PermissionSet.cs
- ButtonBase.cs
- UnionExpr.cs
- FieldMetadata.cs
- CompilationUtil.cs
- GeneratedCodeAttribute.cs
- TextSegment.cs
- RenameRuleObjectDialog.Designer.cs
- QualifierSet.cs
- TreeViewImageIndexConverter.cs
- ServiceReference.cs
- ErrorInfoXmlDocument.cs
- PrintEvent.cs
- ItemCollection.cs
- TreeViewDesigner.cs
- DBSchemaRow.cs
- TargetInvocationException.cs
- Variant.cs
- RichTextBoxContextMenu.cs
- SecurityUtils.cs
- ScriptDescriptor.cs
- ArgumentFixer.cs
- HTTPNotFoundHandler.cs
- OperationValidationEventArgs.cs
- SqlUDTStorage.cs
- XmlReflectionImporter.cs
- Int32AnimationUsingKeyFrames.cs
- OrderByQueryOptionExpression.cs
- StringHandle.cs
- TextHintingModeValidation.cs
- ReachPrintTicketSerializerAsync.cs
- XmlTextWriter.cs
- OneOfScalarConst.cs
- SamlSubject.cs
- DataSourceControl.cs
- WsiProfilesElementCollection.cs
- FixedSchema.cs
- IntegerValidator.cs
- ButtonColumn.cs
- ReflectionHelper.cs
- XPathDocumentIterator.cs
- ReferencedCollectionType.cs
- TypeUtil.cs
- HandleCollector.cs
- DelegatingHeader.cs
- DynamicILGenerator.cs
- SmtpReplyReader.cs
- Transform3D.cs
- DesignTimeParseData.cs
- TableItemStyle.cs
- MessageBox.cs
- FixUp.cs
- wmiutil.cs
- GroupBox.cs
- DataGridViewColumnConverter.cs
- Separator.cs
- StateManagedCollection.cs
- SmtpLoginAuthenticationModule.cs
- DNS.cs
- ProjectedSlot.cs
- QueueProcessor.cs
- securitycriticaldataformultiplegetandset.cs
- SamlDoNotCacheCondition.cs
- WindowsEditBox.cs
- RequestCachePolicyConverter.cs
- Viewport3DVisual.cs
- DataObjectAttribute.cs
- GZipObjectSerializer.cs
- Type.cs
- GroupBox.cs
- InfoCardServiceInstallComponent.cs
- DependencyPropertyKey.cs
- ProfilePropertyNameValidator.cs
- SQLDoubleStorage.cs
- OdbcCommand.cs
- UnmanagedMemoryStreamWrapper.cs
- LinqExpressionNormalizer.cs
- TypeLibConverter.cs
- SessionStateContainer.cs
- MessageProtectionOrder.cs
- XmlSchemaAppInfo.cs
- ArithmeticException.cs
- XamlTemplateSerializer.cs
- DirectoryLocalQuery.cs
- ErrorStyle.cs
- EncoderBestFitFallback.cs
- GenericUriParser.cs
- BmpBitmapDecoder.cs
- SoapInteropTypes.cs
- NamespaceList.cs
- BrowserDefinition.cs
- AsynchronousChannelMergeEnumerator.cs
- DataServices.cs
- IdleTimeoutMonitor.cs
- DictionarySectionHandler.cs
- DataBinding.cs
- securitycriticaldataformultiplegetandset.cs
- DataGridCheckBoxColumn.cs