/// <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 }