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
- ExpressionBindingCollection.cs
- TextServicesCompartment.cs
- XsltArgumentList.cs
- SqlCaseSimplifier.cs
- EventLogPermissionAttribute.cs
- HttpCookiesSection.cs
- ResXDataNode.cs
- UpdateEventArgs.cs
- dataobject.cs
- ACE.cs
- EntityDataSourceDataSelection.cs
- SystemColors.cs
- AppSettingsReader.cs
- StringDictionary.cs
- BooleanConverter.cs
- EventManager.cs
- CodeAccessPermission.cs
- ObjectQuery_EntitySqlExtensions.cs
- Utils.cs
- ValueProviderWrapper.cs
- FileUpload.cs
- KeyValuePair.cs
- HttpRequest.cs
- CaseInsensitiveComparer.cs
- ScriptingSectionGroup.cs
- ProcessActivityTreeOptions.cs
- ScriptingWebServicesSectionGroup.cs
- ValidatorCollection.cs
- LogEntryHeaderSerializer.cs
- IisTraceListener.cs
- FlowDocumentView.cs
- VarInfo.cs
- _AutoWebProxyScriptEngine.cs
- activationcontext.cs
- XPathSingletonIterator.cs
- DocumentXPathNavigator.cs
- DecoderNLS.cs
- Color.cs
- StrokeRenderer.cs
- PnrpPermission.cs
- ThreadStartException.cs
- PreservationFileWriter.cs
- HtmlInputImage.cs
- HttpListenerRequest.cs
- BitmapEncoder.cs
- DependencyPropertyKind.cs
- WinInet.cs
- ButtonFlatAdapter.cs
- ConnectionsZoneDesigner.cs
- DocumentPageTextView.cs
- BufferedWebEventProvider.cs
- DataControlPagerLinkButton.cs
- VisualStates.cs
- RoleGroupCollection.cs
- IFlowDocumentViewer.cs
- UnmanagedMemoryAccessor.cs
- ColorContextHelper.cs
- SplineKeyFrames.cs
- TextEditorLists.cs
- MappingModelBuildProvider.cs
- ContextMenuService.cs
- DocumentStatusResources.cs
- ResXResourceReader.cs
- URLString.cs
- ThrowHelper.cs
- EndSelectCardRequest.cs
- WebSysDisplayNameAttribute.cs
- DeferredElementTreeState.cs
- SerialPinChanges.cs
- EntityRecordInfo.cs
- ApplicationInfo.cs
- DataListItemCollection.cs
- UrlMappingCollection.cs
- WebSysDisplayNameAttribute.cs
- ResourceExpression.cs
- StringWriter.cs
- DbConnectionFactory.cs
- GroupQuery.cs
- Translator.cs
- StaticTextPointer.cs
- SerializationHelper.cs
- ProfileParameter.cs
- MSAANativeProvider.cs
- SettingsPropertyCollection.cs
- MailBnfHelper.cs
- DefaultObjectSerializer.cs
- RotateTransform.cs
- DropSource.cs
- ThreadPool.cs
- XamlRtfConverter.cs
- OdbcEnvironment.cs
- DateTimeConverter2.cs
- EntityProviderFactory.cs
- ClientFormsIdentity.cs
- GenericTypeParameterConverter.cs
- Nullable.cs
- EntityConnection.cs
- DataError.cs
- DeferrableContentConverter.cs
- ClockGroup.cs