我正在构建一个带有两个图标的Xamarin应用程序,其中我使用了以下代码:
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:Gas_Sense;assembly=Gas_Sense"
x:Class="Gas_Sense.HomePage"
Title="Home Page">
<ContentPage.Padding>
<OnPlatform x:TypeArguments="Thickness" iOS="7, 40, 7, 10" />
</ContentPage.Padding>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="120" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
<RowDefinition Height="30" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="130" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Button x:Name="NewDeviceButton" Image="add.png"
HorizontalOptions="End"
BackgroundColor="aqua"
VerticalOptions="FillAndExpand"
Grid.Row="7" Grid.Column="1" />
</Grid>
</ContentPage>
我认为这应该将按钮放在屏幕右下角。相反,它已经这样做了:
该按钮位于内容页面上的网格布局内。为什么按钮位于网格中间?图标不会在其周围留下任何空白。
以下是完整代码的gist。
感谢任何想法,因为我没有太多运气......
我现在更改了代码,以便加号图标现在位于其自己的列中,该列具有已定义的宽度和高度,请参见下文:
<Grid.ColumnDefinitions>
<ColumnDefinition Width="130" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="40" />
</Grid.ColumnDefinitions>
按钮现在定义为:
<Button x:Name="NewDeviceButton" Image="add.png"
HorizontalOptions="Center"
VerticalOptions="FillAndExpand"
Grid.Row="7" Grid.Column="2" />
该按钮附加到以下C#代码:
NewDeviceButton.Clicked += async (sender, e) => {
devices.Clear();
adapter.StartScanningForDevices (0x180D.UuidFromPartial ());
}
看起来很好!但是,我无法点击它?为什么会这样,我只更改了位置定义,但现在无论我点击或按下按钮多少,它都不会触发。有什么想法吗?