更改Xamarin Android复选框的大小

时间:2017-08-10 17:37:53

标签: xamarin.android android-checkbox

我试图在Xamarin Forms应用程序中更改Android复选框的大小。首先是一些背景。我在Xamarin Forms中设置了一个自定义控件,其复选框如下所示:

public class CheckBox : View
{
    public static readonly BindableProperty IsCheckedProperty =
        BindableProperty.Create(nameof(IsChecked), typeof(bool), typeof(CheckBox), false, propertyChanged: IsCheckedChanged);

    // Other properties...
}

在Android项目中,我有一个看起来像这样的渲染器:

[assembly: ExportRenderer(typeof(CheckBox), typeof(CheckBoxRenderer))]
namespace SmallVictories.Droid.Controls
{

    internal class CheckBoxRenderer : ViewRenderer<CheckBox, Android.Widget.CheckBox>
    {
        protected override void OnElementChanged(ElementChangedEventArgs<CheckBox> e)
        {
            if (Control == null)
            {
                _nativeControl = new Android.Widget.CheckBox(Context);
                SetNativeControl(_nativeControl);
            }

            // Other setup...
        }
    }
}

然后我使用页面上的复选框:

<StackLayout Orientation="Horizontal" BackgroundColor="White" Padding="5" Margin="0" HorizontalOptions="FillAndExpand">
    <controls:CheckBox HorizontalOptions="Start" WidthRequest="25" HeightRequest="25" />

如果我将宽度和高度设置为小于25,则复选框将被剪裁。

Clipped CheckBox

如果我将宽度和高度设置为大于25,则复选框保持相同的大小,但可点击区域会变大。下面的复选框尺寸设置为35,但尺寸与设置为25时相同。

enter image description here

我已尝试调整本机控件上的大小等内容以及布局参数。没有工作。

// Neither of these work.
_nativeControl.SetWidth(35);
_nativeControl.SetHeight(35);

var lp = _nativeControls.LayoutParameters;
lp.Width = 35;
lp.Height = 35;
_nativeControls.LayoutParameters = lp;

关于我可以尝试的其他任何建议?感谢。

1 个答案:

答案 0 :(得分:2)

尝试使用比例尺:

var checkbox = new CheckBox(Context);
checkbox.ScaleX = 1.5f;
checkbox.ScaleY = 1.5f;