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
- MultiByteCodec.cs
- StrongNamePublicKeyBlob.cs
- ObfuscateAssemblyAttribute.cs
- ValidationEventArgs.cs
- LineSegment.cs
- Attributes.cs
- BoundPropertyEntry.cs
- XPathCompileException.cs
- CacheOutputQuery.cs
- DataGridViewColumnHeaderCell.cs
- _DisconnectOverlappedAsyncResult.cs
- AttributeEmitter.cs
- AttributeEmitter.cs
- DirectoryNotFoundException.cs
- LayoutEvent.cs
- RestClientProxyHandler.cs
- DATA_BLOB.cs
- cookieexception.cs
- SchemaTableOptionalColumn.cs
- BitmapFrame.cs
- WorkflowMarkupSerializationProvider.cs
- MemberPath.cs
- FixedSOMTextRun.cs
- SignatureHelper.cs
- MenuCommand.cs
- ProtocolViolationException.cs
- DirectionalLight.cs
- IntegerFacetDescriptionElement.cs
- ListViewGroup.cs
- InheritablePropertyChangeInfo.cs
- RegistryPermission.cs
- TableParaClient.cs
- RevocationPoint.cs
- ResourcesGenerator.cs
- ThemeDirectoryCompiler.cs
- Contracts.cs
- ListItemConverter.cs
- CalendarAutoFormatDialog.cs
- DataContractAttribute.cs
- StringFormat.cs
- SettingsAttributes.cs
- ReaderWriterLockWrapper.cs
- SelectionProcessor.cs
- AttributeCollection.cs
- CompatibleIComparer.cs
- UpdatePanelTrigger.cs
- DateTimeOffsetConverter.cs
- CoreSwitches.cs
- XmlEnumAttribute.cs
- UIElement3D.cs
- RoleManagerEventArgs.cs
- ObsoleteAttribute.cs
- TraceUtility.cs
- KnownTypes.cs
- WebServiceParameterData.cs
- PrintingPermission.cs
- RSAPKCS1KeyExchangeDeformatter.cs
- TimelineClockCollection.cs
- ClientSettingsProvider.cs
- PermissionSet.cs
- SelectionProcessor.cs
- RectangleGeometry.cs
- InvalidDataException.cs
- TableDesigner.cs
- LocalizabilityAttribute.cs
- XamlStyleSerializer.cs
- SignatureHelper.cs
- CustomAttributeSerializer.cs
- HttpModuleAction.cs
- CodeRemoveEventStatement.cs
- ZoneMembershipCondition.cs
- IPAddress.cs
- FlowNode.cs
- ConfigurationSectionCollection.cs
- ArgumentException.cs
- MLangCodePageEncoding.cs
- XsltConvert.cs
- DataFormats.cs
- SqlVisitor.cs
- ViewBox.cs
- XslTransform.cs
- DefaultMemberAttribute.cs
- XmlWrappingReader.cs
- ClientTarget.cs
- ConfigurationPropertyCollection.cs
- RepeatButtonAutomationPeer.cs
- HostExecutionContextManager.cs
- ControlBindingsCollection.cs
- CommandID.cs
- DataSpaceManager.cs
- InternalDispatchObject.cs
- InternalConfigEventArgs.cs
- ObjectConverter.cs
- CompressStream.cs
- SqlDataSourceRefreshSchemaForm.cs
- FolderBrowserDialog.cs
- adornercollection.cs
- EdmError.cs
- LogWriteRestartAreaState.cs
- ToolStripSettings.cs