Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Base / System / Windows / AttachedPropertyBrowsableWhenAttributePresentAttribute.cs / 1305600 / AttachedPropertyBrowsableWhenAttributePresentAttribute.cs
namespace System.Windows
{
using System;
using System.ComponentModel;
///
/// This attribute declares that an attached property can only be attached
/// to an object that defines the given attribute on its class.
///
[AttributeUsage(AttributeTargets.Method, AllowMultiple = false)]
public sealed class AttachedPropertyBrowsableWhenAttributePresentAttribute : AttachedPropertyBrowsableAttribute
{
//------------------------------------------------------
//
// Constructors
//
//-----------------------------------------------------
///
/// Creates a new AttachedPropertyBrowsableWhenAttributePresentAttribute. Provide
/// the type of attribute that, when present on a dependency object,
/// should make the property browsable.
///
public AttachedPropertyBrowsableWhenAttributePresentAttribute(Type attributeType)
{
if (attributeType == null) throw new ArgumentNullException("attributeType");
_attributeType = attributeType;
}
//-----------------------------------------------------
//
// Public Properties
//
//-----------------------------------------------------
///
/// Returns the attribute type passed into the constructor.
///
public Type AttributeType
{
get
{
return _attributeType;
}
}
//------------------------------------------------------
//
// Public Methods
//
//-----------------------------------------------------
///
/// Overrides Object.Equals to implement correct equality semantics for this
/// attribute.
///
public override bool Equals(object obj)
{
AttachedPropertyBrowsableWhenAttributePresentAttribute other = obj as AttachedPropertyBrowsableWhenAttributePresentAttribute;
if (other == null) return false;
return _attributeType == other._attributeType;
}
///
/// Overrides Object.GetHashCode to implement correct hashing semantics.
///
public override int GetHashCode()
{
return _attributeType.GetHashCode();
}
//------------------------------------------------------
//
// Internal Methods
//
//------------------------------------------------------
///
/// Returns true if the dependency object class defines an attribute
/// of the same type contained in this attribute. The attribute must
/// differ from the "default" state of the attribute.
///
internal override bool IsBrowsable(DependencyObject d, DependencyProperty dp)
{
if (d == null) throw new ArgumentNullException("d");
if (dp == null) throw new ArgumentNullException("dp");
Attribute a = TypeDescriptor.GetAttributes(d)[_attributeType];
return (a != null && !a.IsDefaultAttribute());
}
//-----------------------------------------------------
//
// Private Fields
//
//------------------------------------------------------
private Type _attributeType;
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
namespace System.Windows
{
using System;
using System.ComponentModel;
///
/// This attribute declares that an attached property can only be attached
/// to an object that defines the given attribute on its class.
///
[AttributeUsage(AttributeTargets.Method, AllowMultiple = false)]
public sealed class AttachedPropertyBrowsableWhenAttributePresentAttribute : AttachedPropertyBrowsableAttribute
{
//------------------------------------------------------
//
// Constructors
//
//-----------------------------------------------------
///
/// Creates a new AttachedPropertyBrowsableWhenAttributePresentAttribute. Provide
/// the type of attribute that, when present on a dependency object,
/// should make the property browsable.
///
public AttachedPropertyBrowsableWhenAttributePresentAttribute(Type attributeType)
{
if (attributeType == null) throw new ArgumentNullException("attributeType");
_attributeType = attributeType;
}
//-----------------------------------------------------
//
// Public Properties
//
//-----------------------------------------------------
///
/// Returns the attribute type passed into the constructor.
///
public Type AttributeType
{
get
{
return _attributeType;
}
}
//------------------------------------------------------
//
// Public Methods
//
//-----------------------------------------------------
///
/// Overrides Object.Equals to implement correct equality semantics for this
/// attribute.
///
public override bool Equals(object obj)
{
AttachedPropertyBrowsableWhenAttributePresentAttribute other = obj as AttachedPropertyBrowsableWhenAttributePresentAttribute;
if (other == null) return false;
return _attributeType == other._attributeType;
}
///
/// Overrides Object.GetHashCode to implement correct hashing semantics.
///
public override int GetHashCode()
{
return _attributeType.GetHashCode();
}
//------------------------------------------------------
//
// Internal Methods
//
//------------------------------------------------------
///
/// Returns true if the dependency object class defines an attribute
/// of the same type contained in this attribute. The attribute must
/// differ from the "default" state of the attribute.
///
internal override bool IsBrowsable(DependencyObject d, DependencyProperty dp)
{
if (d == null) throw new ArgumentNullException("d");
if (dp == null) throw new ArgumentNullException("dp");
Attribute a = TypeDescriptor.GetAttributes(d)[_attributeType];
return (a != null && !a.IsDefaultAttribute());
}
//-----------------------------------------------------
//
// Private Fields
//
//------------------------------------------------------
private Type _attributeType;
}
}
// 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
- Point4D.cs
- UIElementCollection.cs
- __Error.cs
- MsmqInputSessionChannel.cs
- SourceLocationProvider.cs
- ComplexLine.cs
- LayoutTableCell.cs
- HttpPostProtocolReflector.cs
- Vertex.cs
- ArrayList.cs
- ManagementNamedValueCollection.cs
- FunctionDetailsReader.cs
- WebPartRestoreVerb.cs
- TabControl.cs
- DataGridViewElement.cs
- BindingCompleteEventArgs.cs
- XmlImplementation.cs
- ConnectionStringSettings.cs
- SHA1CryptoServiceProvider.cs
- AssemblyCollection.cs
- HttpInputStream.cs
- UserControl.cs
- JulianCalendar.cs
- LazyTextWriterCreator.cs
- XmlReaderSettings.cs
- HitTestResult.cs
- XsltArgumentList.cs
- BitmapEffectGroup.cs
- ExceptionNotification.cs
- RelationshipDetailsRow.cs
- DrawListViewColumnHeaderEventArgs.cs
- XmlStreamNodeWriter.cs
- ApplicationServicesHostFactory.cs
- MonitorWrapper.cs
- RNGCryptoServiceProvider.cs
- SiteMapSection.cs
- MessageEncoder.cs
- xdrvalidator.cs
- PersonalizationProvider.cs
- ServiceProviders.cs
- PathFigureCollectionValueSerializer.cs
- WebPartCancelEventArgs.cs
- DataGridViewSelectedColumnCollection.cs
- SafeReadContext.cs
- PrintDialog.cs
- Calendar.cs
- AsyncResult.cs
- _TLSstream.cs
- TypedElement.cs
- ClientUtils.cs
- NamespaceTable.cs
- TemplateDefinition.cs
- cookiecollection.cs
- EmptyStringExpandableObjectConverter.cs
- PropertySet.cs
- ResXBuildProvider.cs
- ExtensionQuery.cs
- ControlPager.cs
- ArraySubsetEnumerator.cs
- Formatter.cs
- ToolStripArrowRenderEventArgs.cs
- XPathNodeIterator.cs
- SignatureToken.cs
- TagNameToTypeMapper.cs
- DecoderReplacementFallback.cs
- OutputBuffer.cs
- MissingSatelliteAssemblyException.cs
- TouchEventArgs.cs
- DataRowExtensions.cs
- RadioButton.cs
- DBDataPermissionAttribute.cs
- PresentationAppDomainManager.cs
- ExtentKey.cs
- ReadOnlyAttribute.cs
- Style.cs
- MissingMemberException.cs
- SpoolingTaskBase.cs
- HierarchicalDataTemplate.cs
- BasicViewGenerator.cs
- WebPartActionVerb.cs
- processwaithandle.cs
- ProfilePropertyNameValidator.cs
- ListBoxAutomationPeer.cs
- TdsParserHelperClasses.cs
- FieldBuilder.cs
- webbrowsersite.cs
- _IPv4Address.cs
- SecurityElement.cs
- MediaContextNotificationWindow.cs
- MasterPage.cs
- StyleBamlRecordReader.cs
- ShaderEffect.cs
- HandlerFactoryWrapper.cs
- RawStylusInputCustomData.cs
- XmlDomTextWriter.cs
- TextServicesPropertyRanges.cs
- EntityStoreSchemaGenerator.cs
- validationstate.cs
- SerialReceived.cs
- AuthenticatingEventArgs.cs