[NUI] Fix Position type converter error when Position get 2 parameters in XAML (...
authorXianbing Teng <xb.teng@samsung.com>
Wed, 8 Jul 2020 02:31:27 +0000 (10:31 +0800)
committerGitHub <noreply@github.com>
Wed, 8 Jul 2020 02:31:27 +0000 (11:31 +0900)
* Fix Position type converter error when Position get 2 parameters in XAML

* [NUI] Fix Size type converter error

* [NUI] Change Position and Size gets float typed parameters

Co-authored-by: Xianbing Teng <reformed_beginner@outlook.com>
src/Tizen.NUI/src/internal/XamlBinding/PositionTypeConverter.cs
src/Tizen.NUI/src/public/XamlBinding/SizeTypeConverter.cs

index f059ae4..50c3a7e 100755 (executable)
@@ -54,11 +54,17 @@ namespace Tizen.NUI.Binding
                 parts = value.Split(',');
                 if (parts.Length == 3)
                 {
-                    int x = (int)GraphicsTypeManager.Instance.ConvertScriptToPixel(parts[0].Trim());
-                    int y = (int)GraphicsTypeManager.Instance.ConvertScriptToPixel(parts[1].Trim());
-                    int z = (int)GraphicsTypeManager.Instance.ConvertScriptToPixel(parts[2].Trim());
+                    float x = GraphicsTypeManager.Instance.ConvertScriptToPixel(parts[0].Trim());
+                    float y = GraphicsTypeManager.Instance.ConvertScriptToPixel(parts[1].Trim());
+                    float z = GraphicsTypeManager.Instance.ConvertScriptToPixel(parts[2].Trim());
                     return new Position(x, y, z);
                 }
+                else if (parts.Length == 2)
+                {
+                    float x = GraphicsTypeManager.Instance.ConvertScriptToPixel(parts[0].Trim());
+                    float y = GraphicsTypeManager.Instance.ConvertScriptToPixel(parts[1].Trim());
+                    return new Position(x, y);
+                }
             }
 
             throw new InvalidOperationException($"Cannot convert \"{value}\" into {typeof(Position)}");
index 68a2db0..051aadc 100755 (executable)
@@ -23,11 +23,17 @@ namespace Tizen.NUI.Binding
                 string[] parts = value.Split(',');
                 if (parts.Length == 3)
                 {
-                    int x = (int)GraphicsTypeManager.Instance.ConvertScriptToPixel(parts[0].Trim());
-                    int y = (int)GraphicsTypeManager.Instance.ConvertScriptToPixel(parts[1].Trim());
-                    int z = (int)GraphicsTypeManager.Instance.ConvertScriptToPixel(parts[2].Trim());
+                    float x = GraphicsTypeManager.Instance.ConvertScriptToPixel(parts[0].Trim());
+                    float y = GraphicsTypeManager.Instance.ConvertScriptToPixel(parts[1].Trim());
+                    float z = GraphicsTypeManager.Instance.ConvertScriptToPixel(parts[2].Trim());
                     return new Size(x, y, z);
                 }
+                else if (parts.Length == 2)
+                {
+                    float x = GraphicsTypeManager.Instance.ConvertScriptToPixel(parts[0].Trim());
+                    float y = GraphicsTypeManager.Instance.ConvertScriptToPixel(parts[1].Trim());
+                    return new Size(x, y);
+                }
             }
 
             throw new InvalidOperationException($"Cannot convert \"{value}\" into {typeof(Size)}");