diff options
author | Kangho Hur <kangho.hur@samsung.com> | 2017-01-06 15:43:46 +0900 |
---|---|---|
committer | Kangho Hur <kangho.hur@samsung.com> | 2017-02-03 13:27:38 +0900 |
commit | f4bf9d39a2b043a96a95464f264d9241c954bbed (patch) | |
tree | 944f07075dbcb747a72770115e0baad9700b9048 | |
parent | ad961d235ea23b984e3b33fe8284e1489ce90be1 (diff) | |
download | xamarin-forms-f4bf9d39a2b043a96a95464f264d9241c954bbed.tar.gz xamarin-forms-f4bf9d39a2b043a96a95464f264d9241c954bbed.tar.bz2 xamarin-forms-f4bf9d39a2b043a96a95464f264d9241c954bbed.zip |
Support BlendColor to Image as a TizenSpecific API
Change-Id: Ic3068b3c0834605be5d45cc5f1a96d6933a0856f
-rw-r--r-- | Xamarin.Forms.Core/PlatformConfiguration/TizenSpecific/Image.cs | 30 | ||||
-rw-r--r-- | Xamarin.Forms.Core/Xamarin.Forms.Core.csproj | 3 | ||||
-rw-r--r-- | Xamarin.Forms.Platform.Tizen/Renderers/ImageRenderer.cs | 45 |
3 files changed, 74 insertions, 4 deletions
diff --git a/Xamarin.Forms.Core/PlatformConfiguration/TizenSpecific/Image.cs b/Xamarin.Forms.Core/PlatformConfiguration/TizenSpecific/Image.cs new file mode 100644 index 00000000..2c86fd04 --- /dev/null +++ b/Xamarin.Forms.Core/PlatformConfiguration/TizenSpecific/Image.cs @@ -0,0 +1,30 @@ +namespace Xamarin.Forms.PlatformConfiguration.TizenSpecific +{ + using FormsElement = Forms.Image; + + public static class Image + { + public static readonly BindableProperty BlendColorProperty = BindableProperty.Create("BlendColor", typeof(Color), typeof(FormsElement), Color.Default); + + public static Color GetBlendColor(BindableObject element) + { + return (Color)element.GetValue(BlendColorProperty); + } + + public static void SetBlendColor(BindableObject element, Color color) + { + element.SetValue(BlendColorProperty, color); + } + + public static Color GetBlendColor(this IPlatformElementConfiguration<Tizen, FormsElement> config) + { + return GetBlendColor(config.Element); + } + + public static IPlatformElementConfiguration<Tizen, FormsElement> SetBlendColor(this IPlatformElementConfiguration<Tizen, FormsElement> config, Color color) + { + SetBlendColor(config.Element, color); + return config; + } + } +} diff --git a/Xamarin.Forms.Core/Xamarin.Forms.Core.csproj b/Xamarin.Forms.Core/Xamarin.Forms.Core.csproj index b639558b..f2f63bbe 100644 --- a/Xamarin.Forms.Core/Xamarin.Forms.Core.csproj +++ b/Xamarin.Forms.Core/Xamarin.Forms.Core.csproj @@ -1,4 +1,4 @@ -<?xml version="1.0" encoding="utf-8"?> +<?xml version="1.0" encoding="utf-8"?> <Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <PropertyGroup> <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> @@ -103,6 +103,7 @@ <Compile Include="PlatformConfiguration\iOSSpecific\UIStatusBarAnimation.cs" /> <Compile Include="PlatformConfiguration\iOSSpecific\UpdateMode.cs" /> <Compile Include="PlatformConfiguration\iOSSpecific\VisualElement.cs" /> + <Compile Include="PlatformConfiguration\TizenSpecific\Image.cs" /> <Compile Include="PlatformConfiguration\TizenSpecific\ProgressBar.cs" /> <Compile Include="PlatformConfiguration\WindowsSpecific\MasterDetailPage.cs" /> <Compile Include="PlatformConfiguration\WindowsSpecific\CollapseStyle.cs" /> diff --git a/Xamarin.Forms.Platform.Tizen/Renderers/ImageRenderer.cs b/Xamarin.Forms.Platform.Tizen/Renderers/ImageRenderer.cs index ca06a669..09353b2a 100644 --- a/Xamarin.Forms.Platform.Tizen/Renderers/ImageRenderer.cs +++ b/Xamarin.Forms.Platform.Tizen/Renderers/ImageRenderer.cs @@ -1,15 +1,15 @@ +using System.ComponentModel; using System.Threading; using System.Threading.Tasks; +using Specific = Xamarin.Forms.PlatformConfiguration.TizenSpecific.Image; + namespace Xamarin.Forms.Platform.Tizen { public class ImageRenderer : ViewRenderer<Image, Native.Image> { public ImageRenderer() { - RegisterPropertyHandler(Image.SourceProperty, UpdateSource); - RegisterPropertyHandler(Image.AspectProperty, UpdateAspect); - RegisterPropertyHandler(Image.IsOpaqueProperty, UpdateIsOpaque); } protected override void OnElementChanged(ElementChangedEventArgs<Image> e) @@ -20,9 +20,35 @@ namespace Xamarin.Forms.Platform.Tizen SetNativeControl(image); } + if (e.NewElement != null) + { + UpdateAll(); + } + base.OnElementChanged(e); } + protected override void OnElementPropertyChanged(object sender, PropertyChangedEventArgs e) + { + base.OnElementPropertyChanged(sender, e); + if (e.PropertyName == Image.SourceProperty.PropertyName) + { + UpdateSource(); + } + else if (e.PropertyName == Image.AspectProperty.PropertyName) + { + UpdateAspect(); + } + else if (e.PropertyName == Image.IsOpaqueProperty.PropertyName) + { + UpdateIsOpaque(); + } + else if (e.PropertyName == Specific.BlendColorProperty.PropertyName) + { + UpdateBlendColor(); + } + } + async void UpdateSource() { ImageSource source = Element.Source; @@ -49,6 +75,19 @@ namespace Xamarin.Forms.Platform.Tizen { Control.IsOpaque = Element.IsOpaque; } + + void UpdateBlendColor() + { + Control.Color = Specific.GetBlendColor(Element).ToNative(); + } + + void UpdateAll() + { + UpdateSource(); + UpdateAspect(); + UpdateIsOpaque(); + UpdateBlendColor(); + } } public interface IImageSourceHandler : IRegisterable |