问题描述
我有一个包含一些 StackLayout
的 ImageButton
,按钮的 BorderWidth
为 5。
在 UWP 上,边框显示为缩放以适应内部的图像。在Android上,根本不出现边框,图像流入其空间。
UWP(正确):
我的 XAML 看起来像这样
<StackLayout
x:Name="titlebar"
Orientation="Horizontal"
BackgroundColor="{x:DynamicResource TitleBarColor}">
...
<ImageButton
x:Name="menu"
HeightRequest="25" WidthRequest="25"
HorizontalOptions="End"
BorderWidth="5"
BackgroundColor="{x:DynamicResource TitleBarColor}"
Source="{local:ImageResource CloudTest.Assets.icons.more_menu_white.png}"
Clicked="OnMenuClicked" />
</StackLayout>
解决方法
在 Android 中,我发现它只有在您同时设置 BorderWidth
和 BorderColor
(不能 Transparent
)时才有效。
您也可以将 Padding
或 Margin
设置为 ImageButton 以达到效果。
<ImageButton
x:Name="menu"
HeightRequest="25" WidthRequest="25"
HorizontalOptions="End"
Padding ="5" //or Margin ="5"
BackgroundColor="{x:DynamicResource TitleBarColor}"
Source="{local:ImageResource CloudTest.Assets.icons.more_menu_white.png}"
Clicked="OnMenuClicked" />
更新(黄色区域是您的 ImageButton):
使用Margin
时,指控件与同级控件之间的距离:
Padding
,指的是控件的内部内容,比如文字/图片距离控件的边距
所以当你使用内边距时,你会看到图像内部的空间,当你使用边距时,你会看到图像外的空间。