Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / wpf / src / Framework / System / Windows / DynamicResourceExtension.cs / 1 / DynamicResourceExtension.cs
/****************************************************************************\ * * File: DynamicResourceExtension.cs * * Class for Xaml markup extension for static resource references. * * Copyright (C) 2004 by Microsoft Corporation. All rights reserved. * \***************************************************************************/ using System; using System.ComponentModel; using System.Windows; using System.Windows.Markup; using System.Reflection; using MS.Internal; // Helper namespace System.Windows { ////// Class for Xaml markup extension for static resource references. /// [TypeConverter(typeof(DynamicResourceExtensionConverter))] [MarkupExtensionReturnType(typeof(object))] public class DynamicResourceExtension : MarkupExtension { ////// Constructor that takes no parameters /// public DynamicResourceExtension() { } ////// Constructor that takes the resource key that this is a static reference to. /// public DynamicResourceExtension( object resourceKey) { if (resourceKey == null) { throw new ArgumentNullException("resourceKey"); } _resourceKey = resourceKey; } ////// Return an object that should be set on the targetObject's targetProperty /// for this markup extension. For DynamicResourceExtension, this is the object found in /// a resource dictionary in the current parent chain that is keyed by ResourceKey /// ////// The object to set on this property. /// public override object ProvideValue(IServiceProvider serviceProvider) { if (ResourceKey == null) { throw new InvalidOperationException(SR.Get(SRID.MarkupExtensionResourceKey)); } if (serviceProvider != null) { IProvideValueTarget provideValueTarget = serviceProvider.GetService(typeof(IProvideValueTarget)) as IProvideValueTarget; // DynamicResourceExtensions are not allowed On CLR props except for Setter,Trigger,Condition (bugs 1183373,1572537) DependencyObject targetDependencyObject; DependencyProperty targetDependencyProperty; Helper.CheckCanReceiveMarkupExtension(this, provideValueTarget, out targetDependencyObject, out targetDependencyProperty); } return new ResourceReferenceExpression(ResourceKey); } ////// The key in a Resource Dictionary used to find the object refered to by this /// Markup Extension. /// [ConstructorArgument("resourceKey")] // Uses an instance descriptor public object ResourceKey { get { return _resourceKey; } set { if (value == null) { throw new ArgumentNullException("value"); } _resourceKey = value; } } private object _resourceKey; } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. /****************************************************************************\ * * File: DynamicResourceExtension.cs * * Class for Xaml markup extension for static resource references. * * Copyright (C) 2004 by Microsoft Corporation. All rights reserved. * \***************************************************************************/ using System; using System.ComponentModel; using System.Windows; using System.Windows.Markup; using System.Reflection; using MS.Internal; // Helper namespace System.Windows { ////// Class for Xaml markup extension for static resource references. /// [TypeConverter(typeof(DynamicResourceExtensionConverter))] [MarkupExtensionReturnType(typeof(object))] public class DynamicResourceExtension : MarkupExtension { ////// Constructor that takes no parameters /// public DynamicResourceExtension() { } ////// Constructor that takes the resource key that this is a static reference to. /// public DynamicResourceExtension( object resourceKey) { if (resourceKey == null) { throw new ArgumentNullException("resourceKey"); } _resourceKey = resourceKey; } ////// Return an object that should be set on the targetObject's targetProperty /// for this markup extension. For DynamicResourceExtension, this is the object found in /// a resource dictionary in the current parent chain that is keyed by ResourceKey /// ////// The object to set on this property. /// public override object ProvideValue(IServiceProvider serviceProvider) { if (ResourceKey == null) { throw new InvalidOperationException(SR.Get(SRID.MarkupExtensionResourceKey)); } if (serviceProvider != null) { IProvideValueTarget provideValueTarget = serviceProvider.GetService(typeof(IProvideValueTarget)) as IProvideValueTarget; // DynamicResourceExtensions are not allowed On CLR props except for Setter,Trigger,Condition (bugs 1183373,1572537) DependencyObject targetDependencyObject; DependencyProperty targetDependencyProperty; Helper.CheckCanReceiveMarkupExtension(this, provideValueTarget, out targetDependencyObject, out targetDependencyProperty); } return new ResourceReferenceExpression(ResourceKey); } ////// The key in a Resource Dictionary used to find the object refered to by this /// Markup Extension. /// [ConstructorArgument("resourceKey")] // Uses an instance descriptor public object ResourceKey { get { return _resourceKey; } set { if (value == null) { throw new ArgumentNullException("value"); } _resourceKey = value; } } private object _resourceKey; } } // 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
- ToolStripItemClickedEventArgs.cs
- TransactionTable.cs
- GridViewCancelEditEventArgs.cs
- TemplateField.cs
- HtmlEncodedRawTextWriter.cs
- TileBrush.cs
- ThemeableAttribute.cs
- HitTestParameters3D.cs
- DiscoveryClientDuplexChannel.cs
- HtmlButton.cs
- ConnectionString.cs
- GridEntryCollection.cs
- CompilerCollection.cs
- DictionaryBase.cs
- Exceptions.cs
- Rect3D.cs
- SHA384.cs
- NullableLongMinMaxAggregationOperator.cs
- Transform.cs
- ExpandCollapseProviderWrapper.cs
- Random.cs
- DeriveBytes.cs
- Italic.cs
- DynamicPropertyReader.cs
- XPathNode.cs
- ResourceContainerWrapper.cs
- SynchronizedDispatch.cs
- DoWorkEventArgs.cs
- ValueQuery.cs
- ServicePointManagerElement.cs
- BrowserCapabilitiesCodeGenerator.cs
- AttachmentService.cs
- MemberBinding.cs
- DataList.cs
- SpnEndpointIdentityExtension.cs
- RegisteredScript.cs
- RuntimeConfigurationRecord.cs
- TextEndOfParagraph.cs
- IndentTextWriter.cs
- WebReferencesBuildProvider.cs
- LambdaExpression.cs
- VirtualPath.cs
- SettingsProperty.cs
- ISAPIWorkerRequest.cs
- OdbcUtils.cs
- MailSettingsSection.cs
- TextServicesProperty.cs
- HtmlTableRow.cs
- TreeNodeCollection.cs
- WebSysDefaultValueAttribute.cs
- SafeEventLogWriteHandle.cs
- Transaction.cs
- ValueChangedEventManager.cs
- StronglyTypedResourceBuilder.cs
- QuaternionConverter.cs
- log.cs
- DoubleUtil.cs
- SkinIDTypeConverter.cs
- TextDecorationCollection.cs
- WorkflowInstanceQuery.cs
- DefaultMemberAttribute.cs
- EventMetadata.cs
- XmlTextWriter.cs
- BatchWriter.cs
- InvalidOperationException.cs
- ImageConverter.cs
- Size.cs
- LiteralControl.cs
- GeneralTransformGroup.cs
- CompareInfo.cs
- HwndAppCommandInputProvider.cs
- RbTree.cs
- HashHelper.cs
- CompareValidator.cs
- AttributeUsageAttribute.cs
- AssemblyBuilderData.cs
- EnumMember.cs
- CharUnicodeInfo.cs
- DoubleSumAggregationOperator.cs
- ReliableOutputConnection.cs
- _KerberosClient.cs
- mediaclock.cs
- XmlQueryOutput.cs
- CommonDialog.cs
- DbReferenceCollection.cs
- ThreadSafeMessageFilterTable.cs
- RadioButtonBaseAdapter.cs
- Transform3DCollection.cs
- Resources.Designer.cs
- Renderer.cs
- PasswordBoxAutomationPeer.cs
- SpellerStatusTable.cs
- CatalogPartCollection.cs
- TextContainer.cs
- AvTrace.cs
- WebPartConnectionsDisconnectVerb.cs
- DotExpr.cs
- FormsAuthenticationModule.cs
- ConfigXmlComment.cs
- Wizard.cs