void UpdateImage2() { var img2 = ElementEx.Image2; var img2pressed = ElementEx.Image2Pressed; if (img2 != null) { if (img2pressed == null) { var drawable = UIImageFunc.ImageSourceEx2UIImage(img2, isDrawableSimple: false); Control.SetImageDrawable(drawable); ((IVisualElementController)Element).NativeSizeChanged(); } else { var drawable1 = UIImageFunc.ImageSourceEx2UIImage(img2pressed, isDrawableSimple: true); var drawable2 = UIImageFunc.ImageSourceEx2UIImage(img2, isDrawableSimple: true); var states = new StateListDrawable(); states.AddState(new int[] { Android.Resource.Attribute.StatePressed }, drawable1); states.AddState(new int[] { }, drawable2); Control.SetImageDrawable(states); ((IVisualElementController)Element).NativeSizeChanged(); } } }
//public override SizeF SizeThatFits(SizeF size) //{ // var contentEdgeInsets = Control.ContentEdgeInsets; // var eww = contentEdgeInsets.Left + contentEdgeInsets.Right; // var ehh = contentEdgeInsets.Top + contentEdgeInsets.Bottom; // var cww = size.Width - eww; // var chh = size.Height - ehh; // var size2 = new CGSize(cww, double.MaxValue); // var size3 = Control.TitleLabel.SizeThatFits(size2); // var ww = size3.Width + eww; // var hh = size3.Height + ehh; // return new SizeF(ww, hh); // var result = base.SizeThatFits(size); // return result; //} void UpdateImage2() { var img2 = ElementEx.Image2; if (img2 != null) { var drawable1 = UIImageFunc.ImageSourceEx2UIImage(img2, isDrawableSimple: true); var drawable2 = ElementEx.Image2Down != null? UIImageFunc.ImageSourceEx2UIImage(ElementEx.Image2Down, isDrawableSimple : true) : UIImageFunc.ImageSourceEx2UIImage(ElementEx.Image2, isDrawableSimple: true, isdown: true); var states = new StateListDrawable(); states.AddState(new int[] { Android.Resource.Attribute.StatePressed }, drawable2); states.AddState(new int[] { }, drawable1); Control.Background = states; ((IVisualElementController)Element).NativeSizeChanged(); } }