Xamarin Forms中如何缩小Button控件上图片与文本的间距
方案1:使用官方内置ContentLayout属性(推荐)
Xamarin Forms 3.2及以上版本原生提供ContentLayout属性,可直接控制Button内图片与文字的相对位置和间距,无需自定义逻辑。属性语法为ContentLayout="图片位置, 间距值",图片位置支持Left/Right/Top/Bottom四种选项,间距值单位为设备独立像素,可根据需求自由调整。
修改后的代码示例:
<Button Padding="4,0,0,0" FontFamily="{StaticResource mediumFontFamily}" ImageSource="ic_qr_refresh.png" WidthRequest="110" HeightRequest="35" FontSize="Small" VerticalOptions="FillAndExpand" Text="Refresh" ContentLayout="Left,1"> <!-- 此处第二个参数就是图文间距,可调整为0、1等更小数值 --> </Button>
方案2:自定义布局模拟Button(适用于高度自定义场景)
如果默认Button的样式限制无法满足需求,可通过Grid嵌套Image和Label,搭配点击手势模拟Button效果,间距可完全自定义控制:
<Grid WidthRequest="110" HeightRequest="35" VerticalOptions="FillAndExpand"> <!-- 添加点击手势实现按钮点击效果 --> <Grid.GestureRecognizers> <TapGestureRecognizer Tapped="Refresh_Clicked"/> </Grid.GestureRecognizers> <Grid.ColumnDefinitions> <ColumnDefinition Width="Auto"/> <ColumnDefinition Width="Auto"/> </Grid.ColumnDefinitions> <Image Source="ic_qr_refresh.png" VerticalOptions="Center" Margin="4,0,1,0"/> <!-- 调整Margin的右值即可控制图文间距 --> <Label Grid.Column="1" Text="Refresh" FontSize="Small" FontFamily="{StaticResource mediumFontFamily}" VerticalOptions="Center"/> </Grid>
内容的提问来源于stack exchange,提问作者Arvind Chourasiya
相关产品推荐
相关产品推荐

