为什么我以前工作的xml按钮没有触发?

时间:2015-10-14 12:25:48

标签: c# xml xaml user-interface xamarin

我正在构建一个带有两个图标的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>

我认为这应该将按钮放在屏幕右下角。相反,它已经这样做了:

Screenshot

该按钮位于内容页面上的网格布局内。为什么按钮位于网格中间?图标不会在其周围留下任何空白。

以下是完整代码的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 ());
}

看起来很好!但是,我无法点击它?为什么会这样,我只更改了位置定义,但现在无论我点击或按下按钮多少,它都不会触发。有什么想法吗?

0 个答案:

没有答案