Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / wpf / src / 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. 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
- TraceProvider.cs
- SmtpSection.cs
- EntryIndex.cs
- ProgressiveCrcCalculatingStream.cs
- ValidationPropertyAttribute.cs
- MarkupObject.cs
- DbConnectionClosed.cs
- PropertyIDSet.cs
- InternalsVisibleToAttribute.cs
- ObjectSet.cs
- ToolboxBitmapAttribute.cs
- HtmlControlPersistable.cs
- SqlServices.cs
- MessageBox.cs
- TargetInvocationException.cs
- SchemaObjectWriter.cs
- DataTableTypeConverter.cs
- InkCanvasSelection.cs
- BrushMappingModeValidation.cs
- SelectionPattern.cs
- VarRefManager.cs
- RightNameExpirationInfoPair.cs
- KernelTypeValidation.cs
- HttpCookieCollection.cs
- TypeToken.cs
- OrthographicCamera.cs
- ToolboxComponentsCreatingEventArgs.cs
- TableDetailsCollection.cs
- VerifyHashRequest.cs
- VoiceSynthesis.cs
- HtmlSelectionListAdapter.cs
- Geometry.cs
- LambdaCompiler.Binary.cs
- RayMeshGeometry3DHitTestResult.cs
- ChangeProcessor.cs
- InvalidAsynchronousStateException.cs
- UiaCoreApi.cs
- PrimitiveXmlSerializers.cs
- DesignerExtenders.cs
- SafeUserTokenHandle.cs
- CheckBoxRenderer.cs
- HybridObjectCache.cs
- StateMachineHelpers.cs
- HttpConfigurationSystem.cs
- TimeSpanConverter.cs
- ThreadSafeList.cs
- WebPartConnectionsConfigureVerb.cs
- Hash.cs
- ChannelEndpointElement.cs
- XDeferredAxisSource.cs
- PlaceHolder.cs
- SplitContainer.cs
- CalloutQueueItem.cs
- VectorCollectionValueSerializer.cs
- RefreshEventArgs.cs
- WindowAutomationPeer.cs
- HttpResponseHeader.cs
- infer.cs
- DataSetMappper.cs
- HandlerBase.cs
- ExtendedPropertyDescriptor.cs
- WebFaultClientMessageInspector.cs
- CodeLinePragma.cs
- XmlSchemaAttributeGroupRef.cs
- CaseInsensitiveComparer.cs
- WeakReferenceKey.cs
- TextDecorations.cs
- XmlMemberMapping.cs
- GridViewColumnHeaderAutomationPeer.cs
- VisualProxy.cs
- StrongNameKeyPair.cs
- SqlAliasesReferenced.cs
- ToolboxItemCollection.cs
- TypedReference.cs
- DesignerAutoFormatCollection.cs
- DbInsertCommandTree.cs
- Suspend.cs
- EncodingDataItem.cs
- RequestCacheValidator.cs
- TimelineClockCollection.cs
- DefaultAsyncDataDispatcher.cs
- AppModelKnownContentFactory.cs
- HtmlInputPassword.cs
- AsyncPostBackErrorEventArgs.cs
- FreeIndexList.cs
- SchemaNotation.cs
- XmlFormatWriterGenerator.cs
- Color.cs
- Compensate.cs
- DataGridView.cs
- DataControlLinkButton.cs
- SqlNotificationEventArgs.cs
- LateBoundBitmapDecoder.cs
- ErrorWebPart.cs
- CollaborationHelperFunctions.cs
- EncoderNLS.cs
- XmlIlGenerator.cs
- ObjectParameter.cs
- ParameterBuilder.cs
- XPathExpr.cs