如何在Xamarine.Forms xaml中设置按钮内的图像宽度?

时间:2017-06-09 08:48:37

标签: xamarin xamarin.forms

我想知道是否可以在此按钮内设置图像的宽度和高度:

class Foo
   def bar():
      # How to include definition saved in another file?

任何解决方案?

6 个答案:

答案 0 :(得分:4)

您始终可以创建一个Image控件并为其添加一个点击手势识别器。这样您就可以更好地控制图像大小和位置。

<强> XAML

<Image x:Name="myImage" Source="ic_music_white.png" HeightRequest="56"  BackgroundColor="PowderBlue" HorizontalOptions="Center"/>

<强> XAML.CS

TapGestureRecognizer tapEvent = new TapGestureRecognizer();
tapEvent.Tapped += Button_Clicked;
myImage.GestureRecognizers.Add(tapEvent);

答案 1 :(得分:1)

这不可能来自Xamarin.Forms项目,但您可以创建自定义渲染器,以允许您修改本机控件的属性。

对于iOS,您将更改ImageEdgeInsets

对于Android,您可能需要查看Button renderer,以便获得任何想法。

希望这会有所帮助.-

答案 2 :(得分:0)

在iOS项目中,填充可以调整按钮内图像的大小。如果宽度为50,边距为10,则结果图像宽度将为30。

答案 3 :(得分:0)

否,您无法管理button中图像的高度/宽度。 更好的选择是创建一个堆栈布局,然后将文本和图像放入其中。 我的方式:

<StackLayout Grid.Row="2" Orientation="Horizontal" HorizontalOptions="FillAndExpand"  VerticalOptions="End" HeightRequest="60">

                <Label Text="Review task" HorizontalOptions="EndAndExpand" VerticalOptions="CenterAndExpand" FontSize="25" FontAttributes="Bold"/>
                <Image Source="nextarrow_white.png" HorizontalOptions="StartAndExpand" VerticalOptions="CenterAndExpand" HeightRequest="32" Margin="20,4,0,0"/>

        </StackLayout>

答案 4 :(得分:0)

如果您只想将按钮放置在屏幕内而不添加文本或其他内容,您可以将按钮放置在网格布局中,如下所示

<Grid RowDefinitions="auto"
              ColumnDefinitions="auto"
              Margin="40 40 40 40">
              
              <ImageButton Grid.Row="1"
                         Grid.Column="1"
                         Source="Resources/Images/installations.png"
                         HorizontalOptions="Center"
                         VerticalOptions="Center"/>
          </Grid>

在那里,您对网格布局应用边距,这种情况下图像将自动调整其大小以适应可用空间。

答案 5 :(得分:-1)

You have missed to add WidthRequest. Can you add WidthRequest like below

<Button Image="ic_music_white.png" BorderWidth="1" BorderColor="White" HeightRequest="56" WidthRequest="56"  BackgroundColor="PowderBlue" HorizontalOptions="Center" Clicked="Button_Clicked">
</Button>