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
- LZCodec.cs
- PlatformCulture.cs
- UInt32Converter.cs
- SQLMoney.cs
- GeneratedContractType.cs
- ToolbarAUtomationPeer.cs
- OleDbStruct.cs
- PeerTransportCredentialType.cs
- UTF7Encoding.cs
- TdsParserSafeHandles.cs
- ButtonStandardAdapter.cs
- LineGeometry.cs
- TemplateBindingExpressionConverter.cs
- EnumValAlphaComparer.cs
- TextServicesCompartmentContext.cs
- Native.cs
- DecoderBestFitFallback.cs
- CodeSubDirectoriesCollection.cs
- DbInsertCommandTree.cs
- CmsUtils.cs
- TrackingMemoryStream.cs
- AppDomainAttributes.cs
- DataGridViewCellMouseEventArgs.cs
- SafeThemeHandle.cs
- _AutoWebProxyScriptWrapper.cs
- TraceSection.cs
- RSAPKCS1SignatureDeformatter.cs
- AssemblyResourceLoader.cs
- UserNameSecurityTokenAuthenticator.cs
- ClientConfigurationHost.cs
- TextRangeProviderWrapper.cs
- AccessDataSource.cs
- DataGridViewRowCancelEventArgs.cs
- DataGridViewComboBoxEditingControl.cs
- TextTreeText.cs
- PathSegmentCollection.cs
- WindowsFormsLinkLabel.cs
- BamlReader.cs
- ParserHooks.cs
- FlowDocument.cs
- Documentation.cs
- ChangeTracker.cs
- ChannelManager.cs
- Aggregates.cs
- LoginView.cs
- OleDbSchemaGuid.cs
- OdbcPermission.cs
- DataService.cs
- LicenseContext.cs
- Sql8ConformanceChecker.cs
- RegisteredDisposeScript.cs
- DependencyObjectProvider.cs
- DesignerOptionService.cs
- FillErrorEventArgs.cs
- DropShadowBitmapEffect.cs
- PropertyDescriptors.cs
- HttpListenerContext.cs
- CompositeClientFormatter.cs
- Label.cs
- ExpressionWriter.cs
- ProtocolViolationException.cs
- DeflateInput.cs
- FileDetails.cs
- HtmlControlPersistable.cs
- HMAC.cs
- TrustManager.cs
- RemotingSurrogateSelector.cs
- ToolboxItemCollection.cs
- WorkflowPageSetupDialog.cs
- ICspAsymmetricAlgorithm.cs
- MachineKeyConverter.cs
- CallbackTimeoutsElement.cs
- ListViewGroupItemCollection.cs
- CheckBoxBaseAdapter.cs
- CheckBoxBaseAdapter.cs
- HitTestWithGeometryDrawingContextWalker.cs
- HttpApplication.cs
- NotifyIcon.cs
- ProviderBase.cs
- RemoteCryptoSignHashRequest.cs
- Label.cs
- SmtpReplyReaderFactory.cs
- XmlSignatureProperties.cs
- IApplicationTrustManager.cs
- StringFunctions.cs
- GridEntry.cs
- ToolStripControlHost.cs
- FrameworkPropertyMetadata.cs
- BufferModeSettings.cs
- EventLogPropertySelector.cs
- Logging.cs
- ConfigurationValue.cs
- WinEventWrap.cs
- RegexMatch.cs
- SymbolTable.cs
- ResourceDisplayNameAttribute.cs
- DiscoveryDocumentReference.cs
- XappLauncher.cs
- DescendantOverDescendantQuery.cs
- RightsManagementEncryptionTransform.cs