按钮图像
Button定义了FileImageSource类型的Image属性,您可以使用该属性提供显示在按钮文本左侧的小型补充图像。此功能不适用于仅限图像按钮;如果这就是你想要的,本章中的ImageTap程序是一个很好的起点。
您希望图像大小约为五分之一英寸。这意味着您希望它们在32个与设备无关的单元中呈现并显示在Button的背景上。对于iOS和UWP,这意味着白色或透明背景下的黑色图像。对于Android,Windows 8.1和Windows Phone 8.1,您需要在透明背景下显示白色图像。
ButtonImage项目中的所有位图都来自Android De?sign图标集的Action Bar目录以及03_rating_good和03_rating_bad子目录。这些是“竖起大拇指”和“竖起大拇指”的图像。
iOS图像来自holo_light目录(透明背景上的黑色图像),具有以下文件名转换:
- 未重命名drawable-mdpi / ic_action_good.png
- drawable-xhdpi / ic_action_good.png重命名为ic_action_good@2x.png
对于ic_action_bad.png也是如此。
Android图像来自holo_dark目录(透明背景上的白色图像),包括子目录中的所有四种尺寸drawable-mdpi(32像素正方形),drawable-hdpi(48像素),drawable-xhdpi(64像素)和drawable -xxhdpi(96像素广场)。
各种Windows运行时项目的图像均为drawable-mdpi目录中的32像素位图。
这是为两个Button元素设置Icon属性的XAML文件:
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="ButtonImage.ButtonImagePage">
<StackLayout VerticalOptions="Center"
Spacing="50">
<StackLayout.Resources>
<ResourceDictionary>
<Style TargetType="Button">
<Setter Property="HorizontalOptions" Value="Center" />
</Setter.Value>
</Setter>
</Style>
</ResourceDictionary>
</StackLayout.Resources>
<Button Text="Oh Yeah">
<Button.Image>
<OnPlatform x:TypeArguments="FileImageSource"
iOS="ic_action_good.png"
Android="ic_action_good.png"
WinPhone="Images/ic_action_good.png" />
</Button.Image>
</Button>
<Button Text="No Way">
<Button.Image>
<OnPlatform x:TypeArguments="FileImageSource"
iOS="ic_action_bad.png"
Android="ic_action_bad.png"
WinPhone="Images/ic_action_bad.png" />
</Button.Image>
</Button>
</StackLayout>
</ContentPage>
他们在这里:
它并不多,但位图为通常纯文本的按钮增加了一点点。
小位图的另一个重要用途是可用于TableView中项目的上下文菜单。 但前提条件是深入探索有助于Xamarin.Forms交互式界面的各种视图。 这将在第15章出现。
但首先让我们看看StackLayout的替代方案,它允许您以完全灵活的方式定位子视图。