2014-09-04 25 views
8

我试着调整宽度& Xamarin.Forms for iPad应用程序中我的文本框[Entry]控件的高度,但它没有使用WidthRequest属性设置宽度。如何在Xamarin.Forms中设置控件宽度

任何人都可以请帮助我关于如何设置控件的宽度相同。

这是我的XAML代码,使用Grid & StackLayout,但没有一个能够工作。

<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> 

与堆栈布局

<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> 

回答

24

注意也试过,你必须与WidthRequest指定Horizo​​ntalOptions得到这个在StackLayout工作,因为它会尝试自动 - 默认情况下展开。如下所示

示例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

谢谢@Pete。这对我有效。 – 2014-09-04 12:16:58

6

使用StackLayout与间距,水平/垂直选项和补白的组合。例如:

<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> 
相关问题