2017-06-27 4 views
0

Xamarinフォームを使用していて、相対レイアウト内の要素のイベントが発生していません。私はそれらを後ろのコードに登録しようとしたが、まだ発砲しなかった。ボタンは画面の下部に表示されていたので、-250の制約があり、それを移動できる唯一の方法でした。ここ は私のXAMLです:チャット上の議論の後相対レイアウトの要素のイベントが発生しない

<StackLayout Orientation="Vertical"> 
    <RelativeLayout> 
     <Grid Margin="0,0,10,0" 
       x:Name="grid" 
       RelativeLayout.YConstraint="{ConstraintExpression Type=RelativeToParent, Property=Y, Factor=0, Constant=10}" 
       RelativeLayout.XConstraint="{ConstraintExpression Type=RelativeToParent, Property=X, Factor=0, Constant=0}" 
       > 


     <Grid.RowDefinitions> 
      <RowDefinition Height="Auto"/> 
     </Grid.RowDefinitions> 
     <Grid.ColumnDefinitions> 
      <ColumnDefinition Width="50*" /> 
      <ColumnDefinition Width="50*" /> 
     </Grid.ColumnDefinitions> 

     <Label Grid.Column="0" 
       Grid.Row="0" 
       Text="IP Address" 
       Margin="10,10,0,0" 
       HorizontalOptions="StartAndExpand"/> 
     <Entry Grid.Column="1" 
       Grid.Row="0" 
      x:Name="IPAddress" 
      Placeholder="IP" 
       WidthRequest="200" 

       Margin="0,0,10,0" 
      HorizontalOptions="EndAndExpand"/> 
     <Label Grid.Column="0" 
       Grid.Row="1" 
       Text="Port" 
       Margin="10,10,0,0" 
       MinimumWidthRequest="100" 
       HorizontalOptions="Start"/> 
     <Entry Grid.Column="1" 
       Grid.Row="1" 
      x:Name="Port" 
       Margin="0,0,10,0" 
      Placeholder="Port" 
       WidthRequest="200" 
      HorizontalOptions="End"/> 
     <Label Grid.Column="0" 
       Grid.Row="2" 
       Margin="10,10,0,0" 
       Text="User Name" 
       MinimumWidthRequest="100" 
       HorizontalOptions="Start"/> 
     <Entry Grid.Column="1" 
       Grid.Row="2" 
      x:Name="UserName" 
       Margin="0,0,10,0" 
       WidthRequest="200" 
      Placeholder="User Name" 
      HorizontalOptions="End"/> 
     <Label Grid.Column="0" 
       Grid.Row="3" 
       Margin="10,10,0,0" 
       Text="Password" 
       MinimumWidthRequest="100" 
       HorizontalOptions="Start"/> 
     <Entry Grid.Column="1" 
       Grid.Row="3" 
      x:Name="Password" 
       IsPassword="True" 
       Margin="0,0,10,0" 
       WidthRequest="200" 
      Placeholder="Password" 
      HorizontalOptions="End"/> 

     </Grid> 

    </RelativeLayout> 
    <RelativeLayout 
     IsEnabled="True"> 
     <Button x:Name="SaveBtn" 
       IsEnabled="True" 
       WidthRequest="100" 
       RelativeLayout.YConstraint="{ConstraintExpression Type=RelativeToParent, Property=Y, Factor=0, Constant=-250}" 
       RelativeLayout.XConstraint="{ConstraintExpression Type=RelativeToParent, Property=X, Factor=0, Constant=30}" 
       Clicked="SaveBtn_Clicked" 
       BorderColor="Gray" 
       Text="Save"></Button> 
     <Button x:Name="ClearFavorites" 
       IsEnabled="True" 
       WidthRequest="120" 
       RelativeLayout.YConstraint="{ConstraintExpression Type=RelativeToParent, Property=Y, Factor=0, Constant=-250}" 
       RelativeLayout.XConstraint="{ConstraintExpression Type=RelativeToParent, Property=Width, Factor=0.5, Constant=20}" 
       Clicked="ClearFavorites_Clicked" 
       BorderColor="Gray" 
       Text="Clear Favorites"></Button> 
    </RelativeLayout> 
</StackLayout> 
+1

を動作するようですSaveBtn_Clickedであなたのコードは、あなたの制約が画面の外にボタンを取っている –

+0

定義されて表示されます。ボタンを表示するように設定すると、両方のクリックイベントが発生します –

+0

どのデバイスを使用していますか?私は5と6でテストしており、ボタンは画面上にあります。 –

答えて

1

これは

<StackLayout Orientation="Vertical"> 
<RelativeLayout> 
<Grid Margin="0,0,10,0" 
x:Name="grid" 
RelativeLayout.YConstraint="{ConstraintExpression Type=RelativeToParent, Property=Y, Factor=0, Constant=10}" 
RelativeLayout.XConstraint="{ConstraintExpression Type=RelativeToParent, Property=X, Factor=0, Constant=0}" 
> 


<Grid.RowDefinitions> 
<RowDefinition Height="Auto"/> 
</Grid.RowDefinitions> 
<Grid.ColumnDefinitions> 
<ColumnDefinition Width="50*" /> 
<ColumnDefinition Width="50*" /> 
</Grid.ColumnDefinitions> 

<Label Grid.Column="0" 
Grid.Row="0" 
Text="IP Address" 
Margin="10,10,0,0" 
HorizontalOptions="StartAndExpand"/> 
<Entry Grid.Column="1" 
Grid.Row="0" 
x:Name="IPAddress" 
Placeholder="IP" 
WidthRequest="200" 

Margin="0,0,10,0" 
HorizontalOptions="EndAndExpand"/> 
<Label Grid.Column="0" 
Grid.Row="1" 
Text="Port" 
Margin="10,10,0,0" 
MinimumWidthRequest="100" 
HorizontalOptions="Start"/> 
<Entry Grid.Column="1" 
Grid.Row="1" 
x:Name="Port" 
Margin="0,0,10,0" 
Placeholder="Port" 
WidthRequest="200" 
HorizontalOptions="End"/> 
<Label Grid.Column="0" 
Grid.Row="2" 
Margin="10,10,0,0" 
Text="User Name" 
MinimumWidthRequest="100" 
HorizontalOptions="Start"/> 
<Entry Grid.Column="1" 
Grid.Row="2" 
x:Name="UserName" 
Margin="0,0,10,0" 
WidthRequest="200" 
Placeholder="User Name" 
HorizontalOptions="End"/> 
<Label Grid.Column="0" 
Grid.Row="3" 
Margin="10,10,0,0" 
Text="Password" 
MinimumWidthRequest="100" 
HorizontalOptions="Start"/> 
<Entry Grid.Column="1" 
Grid.Row="3" 
x:Name="Password" 
IsPassword="True" 
Margin="0,0,10,0" 
WidthRequest="200" 
Placeholder="Password" 
HorizontalOptions="End"/> 

</Grid> 

</RelativeLayout> 
<RelativeLayout 
IsEnabled="True"> 
<Button x:Name="SaveBtn" 
IsEnabled="True" 
WidthRequest="100" 
RelativeLayout.YConstraint="{ConstraintExpression Type=RelativeToParent, Property=Y, Factor=0, Constant=50}" 
RelativeLayout.XConstraint="{ConstraintExpression Type=RelativeToParent, Property=X, Factor=0, Constant=30}" 
Clicked="SaveBtn_Clicked" 
BorderColor="Gray" 
Text="Save"></Button> 
<Button x:Name="ClearFavorites" 
IsEnabled="True" 
WidthRequest="120" 
RelativeLayout.YConstraint="{ConstraintExpression Type=RelativeToParent, Property=Y, Factor=0, Constant=50}" 
RelativeLayout.XConstraint="{ConstraintExpression Type=RelativeToParent, Property=Width, Factor=0.5, Constant=20}" 
Clicked="ClearFavorites_Clicked" 
BorderColor="Gray" 
Text="Clear Favorites"></Button> 
</RelativeLayout> 
</StackLayout> 
関連する問題