예제 #1
0
        /// <summary>
        /// Get a source object for binding, an object matching the key in resource dictionaries.
        /// </summary>
        /// <param name="serviceProvider">Object that can provide services for the markup extension.</param>
        /// <returns>Reference to a source object.</returns>
        protected override object ObtainSourceObject(IServiceProvider serviceProvider)
        {
#if WINDOWS_UWP
            // ReSharper disable SuggestUseVarKeywordEvident
            IProvideValueTarget service = serviceProvider.GetService(typeof(IProvideValueTarget)) as IProvideValueTarget;
            // ReSharper restore SuggestUseVarKeywordEvident
            // For WinRT we provide a valid targets through BindXAML class.
            object obj = BindHelper.LocateResource(service.TargetObject as FrameworkElement, ResourceKey);
            return(obj);
#else
            // For WPF we have got a StaticResourceExtension to get a Resource
            return(ResourceSource.ProvideValue(serviceProvider));
#endif
        }