我想知道是否可以在此按钮内设置图像的宽度和高度:
class Foo
def bar():
# How to include definition saved in another file?
任何解决方案?
答案 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>