protected override void OnElementChanged(ElementChangedEventArgs <Editor> e)
        {
            base.OnElementChanged(e);

            if (Control == null || e.NewElement == null)
            {
                return;
            }

            XEditor element = (XEditor)e.NewElement;

            // Placeholder.
            this.Control.Hint = element.Placeholder;
            this.Control.SetHintTextColor(ColorStateList.ValueOf(element.PlaceholderColor.ToAndroid()));

            // Internal Padding.
            if (element.InternalPadding != default(int))
            {
                var internalPaddingInPx = ConvertToPx(element.InternalPadding);
                Control.SetPadding(internalPaddingInPx, internalPaddingInPx, internalPaddingInPx, internalPaddingInPx);
            }

            // Border color.
            if (Build.VERSION.SdkInt >= BuildVersionCodes.Lollipop && element.BorderColor != default(Xamarin.Forms.Color))
            {
                Control.BackgroundTintList = ColorStateList.ValueOf(element.BorderColor.ToAndroid());
            }
            else if (Build.VERSION.SdkInt < BuildVersionCodes.Lollipop && element.BorderColor != Xamarin.Forms.Color.Black)
            {
                Control.Background.SetColorFilter(element.BorderColor.ToAndroid(), PorterDuff.Mode.SrcAtop);
            }

            element.Unfocused += (sender, evt) => { ChangeColor(element.BorderColor.ToAndroid()); };
            element.Focused   += (sender, evt) => { ChangeColor(element.BorderColorFocused.ToAndroid()); };

            // Text alignment.
            if (element.HorizontalTextAlignment == Xamarin.Forms.TextAlignment.Center)
            {
                Control.Gravity = Android.Views.GravityFlags.CenterHorizontal;
            }
            else if (element.HorizontalTextAlignment == Xamarin.Forms.TextAlignment.Start)
            {
                Control.Gravity = Android.Views.GravityFlags.Start;
            }
            else if (element.HorizontalTextAlignment == Xamarin.Forms.TextAlignment.End)
            {
                Control.Gravity = Android.Views.GravityFlags.End;
            }
        }
예제 #2
0
파일: PBRLabTools.cs 프로젝트: xgits/PBRLab
 public static void CreateTestCaseFromShader(Shader shaderSource)
 {
     string subTestCasePath = testCasePath + "/" + shaderSource.name;
     //CreateDirectory
     {
         if (!Directory.Exists(subTestCasePath))
         {
             Debug.Log("Sub test case path created at: " + subTestCasePath);
             Directory.CreateDirectory(subTestCasePath);
             AssetDatabase.ImportAsset(subTestCasePath);
         }
         else
         {
             Debug.Log("Project exists!");
         }
         XEditor.FocusOnPath(subTestCasePath);
     }
     //Create Material
     {
         string   matPath = subTestCasePath + "/" + shaderSource.name.Replace("/", "_") + ".mat";
         Material mat     = AssetDatabase.LoadAssetAtPath <Material>(matPath);
         if (mat == null)
         {
             mat = new Material(shaderSource);
             AssetDatabase.CreateAsset(mat, matPath);
             AssetDatabase.ImportAsset(matPath);
         }
         XEditor.FocusOnPath(matPath);
     }
     //Create Instance
     {
         for (int i = 0; i < 10; i++)
         {
             var go = GameObject.CreatePrimitive(PrimitiveType.Sphere);
             go.name = shaderSource.name.Replace("/", "_") + "_" + i.ToString();
             go.transform.position += Vector3.right * i;
             var mr  = go.GetComponent <MeshRenderer>();
             var mat = new Material(shaderSource);
             mat.SetFloat(ShaderParam1, (i + 1) * 0.1f);
             mr.sharedMaterial = mat;
         }
     }
 }