2014-09-04 23 views
8

Próbowałem dostosować szerokość & wysokość kontrolki Moje pole tekstowe [Wejście] w Xamarin.Forms dla aplikacji na iPad, ale nie ustawia ona szerokości za pomocą właściwości WidthRequest.Jak ustawić szerokość formantów w Xamarin.Forms

Czy ktoś może mi pomóc w tym samym ustawieniu szerokości elementów sterujących.

Oto mój kod XAML dla tego samego przy użyciu Grid & StackLayout, ale żaden z nich nie działał.

<Grid VerticalOptions="FillAndExpand" HorizontalOptions="FillAndExpand" > 
    <Grid.RowDefinitions> 
    <RowDefinition Height="Auto" ></RowDefinition> 
    <RowDefinition Height="*"></RowDefinition> 
    <RowDefinition Height="10"></RowDefinition> 
    </Grid.RowDefinitions> 
    <Grid.ColumnDefinitions> 
    <ColumnDefinition Width="*"></ColumnDefinition> 
    </Grid.ColumnDefinitions> 

    <Image Grid.Row="0" Grid.Column="0" Source="loginlogo.png"></Image> 
    <StackLayout Grid.Row="1" Grid.Column="0"> 
    <Entry Placeholder="Enter Username" WidthRequest="20"></Entry> 
    <Entry Placeholder="Enter Password" WidthRequest="20"></Entry> 
    <Button Text="Button 1"></Button> 
    </StackLayout> 
    </Grid> 

próbował także z układem Stos

<StackLayout Spacing="10"> 
    <Entry x:Name="txtUserName" Placeholder="Enter Username" WidthRequest="2" HeightRequest="200"></Entry> 
    <Entry x:Name="txtPassword" Placeholder="Enter Password" WidthRequest="2" HeightRequest="200"></Entry> 
    <Button Text="Button 1"></Button></StackLayout> 

Odpowiedz

24

Zauważ, że musisz określić HorizontalOptions z WidthRequest aby uzyskać to do pracy na StackLayout jak będzie próbować auto- rozwiń domyślnie.

Przykład pokazany poniżej StackLayout: -

 StackLayout objStackLayout = new StackLayout() 
     { 
      Spacing = 10 
     }; 
     // 
     Entry objEntry1 = new Entry() 
     { 
      Placeholder = "Enter Username", 
      WidthRequest = 300, 
      HeightRequest = 200, 
      HorizontalOptions = LayoutOptions.Start 
     }; 
     objStackLayout.Children.Add(objEntry1); 
     // 
     Entry objEntry2 = new Entry() 
     { 
      Placeholder = "Enter Password", 
      WidthRequest = 200, 
      HeightRequest = 200, 
      HorizontalOptions = LayoutOptions.Start 
     }; 
     objStackLayout.Children.Add(objEntry2); 
     // 
     Button objButton1 = new Button() 
     { 
      Text = "Button1", 
      HorizontalOptions = LayoutOptions.Start 
     }; 
     objStackLayout.Children.Add(objButton1); 
+0

Dzięki @Pete. To działało dla mnie. –

6

Używaj StackLayout z kombinacji poziomych odstępach, opcje/pionowo i uszczelek. Przykład:

<StackLayout Padding="20" Spacing="10"> 
    <Entry Placeholder="Username" 
     VerticalOptions="Start" 
     HorizontalOptions="FillAndExpand" /> 

    <Entry Placeholder="Password" 
     VerticalOptions="Start" 
     HorizontalOptions="FillAndExpand" /> 

    <Button Text="Submit" VerticalOptions="EndAndExpand" /> 
</StackLayout> 
Powiązane problemy