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
- rsa.cs
- SoapRpcMethodAttribute.cs
- DataSourceControl.cs
- HttpModule.cs
- ConstructorNeedsTagAttribute.cs
- TypeBuilderInstantiation.cs
- VolatileResourceManager.cs
- CqlLexerHelpers.cs
- CompositeScriptReference.cs
- hebrewshape.cs
- FixedSOMPageConstructor.cs
- PrinterSettings.cs
- HttpWriter.cs
- DataTableTypeConverter.cs
- RawStylusInputReport.cs
- Imaging.cs
- SpnegoTokenProvider.cs
- CompatibleComparer.cs
- AsyncContentLoadedEventArgs.cs
- SqlDataReaderSmi.cs
- AnimationLayer.cs
- DocumentProperties.cs
- HttpProcessUtility.cs
- WebControlParameterProxy.cs
- SiteMapProvider.cs
- XmlBinaryReader.cs
- DataGridViewRowDividerDoubleClickEventArgs.cs
- SystemTcpStatistics.cs
- IgnoreFileBuildProvider.cs
- ListControl.cs
- GridViewCancelEditEventArgs.cs
- DataRelationCollection.cs
- TypeInitializationException.cs
- HwndSourceParameters.cs
- ProbeDuplexAsyncResult.cs
- NamedPipeDuplicateContext.cs
- SectionXmlInfo.cs
- ValidatorCompatibilityHelper.cs
- TemplateField.cs
- SuppressIldasmAttribute.cs
- SafeNativeMethods.cs
- DataGridClipboardHelper.cs
- PreloadedPackages.cs
- Dynamic.cs
- Bold.cs
- HtmlPhoneCallAdapter.cs
- StatusBarPanel.cs
- DesignerExtenders.cs
- AuthorizationRuleCollection.cs
- HashHelper.cs
- DataGridViewUtilities.cs
- StandardOleMarshalObject.cs
- ExtendedProtectionPolicyElement.cs
- EntityDesignPluralizationHandler.cs
- StreamGeometry.cs
- CLSCompliantAttribute.cs
- GeometryHitTestResult.cs
- SqlBuilder.cs
- PinnedBufferMemoryStream.cs
- HashHelper.cs
- SoapElementAttribute.cs
- PackageDigitalSignature.cs
- XmlSchemaComplexContentExtension.cs
- PropertyConverter.cs
- MultiSelector.cs
- ListViewCancelEventArgs.cs
- XmlBinaryReader.cs
- PackagingUtilities.cs
- WindowsAuthenticationModule.cs
- WebPartMovingEventArgs.cs
- FunctionImportMapping.ReturnTypeRenameMapping.cs
- ListView.cs
- initElementDictionary.cs
- XmlHierarchicalDataSourceView.cs
- ObjRef.cs
- DeviceContext2.cs
- DataKeyArray.cs
- ErrorTableItemStyle.cs
- Oid.cs
- DependencyPropertyAttribute.cs
- PackUriHelper.cs
- BinaryMessageEncodingBindingElement.cs
- CngKeyBlobFormat.cs
- KnownColorTable.cs
- DbParameterHelper.cs
- Math.cs
- filewebrequest.cs
- SoapProtocolReflector.cs
- TableLayoutRowStyleCollection.cs
- FontStyle.cs
- CursorConverter.cs
- SoapInteropTypes.cs
- RelationshipEndMember.cs
- ComboBoxItem.cs
- AdRotator.cs
- ResourceReferenceExpression.cs
- EntityClassGenerator.cs
- MetadataCache.cs
- WebColorConverter.cs
- RepeatBehavior.cs