C# 对齐标签和条目,使条目在xamarin表单中自动调整宽度并向右对齐
我正在尝试创建一个标签,旁边有条目,我正在尝试实现下面的效果(我的条目的边框设置为透明,这就是它下面没有线条的原因): 如果条目文本和标签文本都对齐,则条目应向左“增长”,因为键入的数字越多,并将“£”符号向左移动,但这是迄今为止我所能做的最好的: 这是使用以下代码:C# 对齐标签和条目,使条目在xamarin表单中自动调整宽度并向右对齐,c#,xaml,xamarin.forms,C#,Xaml,Xamarin.forms,我正在尝试创建一个标签,旁边有条目,我正在尝试实现下面的效果(我的条目的边框设置为透明,这就是它下面没有线条的原因): 如果条目文本和标签文本都对齐,则条目应向左“增长”,因为键入的数字越多,并将“£”符号向左移动,但这是迄今为止我所能做的最好的: 这是使用以下代码: <StackLayout Orientation="Horizontal" Grid.Row="0" Grid.Column="1"> <Label HorizontalOptions="Fill
<StackLayout Orientation="Horizontal" Grid.Row="0" Grid.Column="1">
<Label HorizontalOptions="FillAndExpand" VerticalOptions="CenterAndExpand" Text="£" FontSize="20" FontFamily="{StaticResource RobotoLight}" TextColor="#C7C7C7" Grid.Column="0"/>
<controls:BorderlessEntry Text="{Binding Income.MonthlyIncome}" WidthRequest="80" HorizontalOptions="EndAndExpand" PlaceholderColor="#C7C7C7" Placeholder="0" VerticalOptions="CenterAndExpand" FontSize="20" FontFamily="{StaticResource RobotoLight}" TextColor="#C7C7C7" Grid.Column="1"/>
</StackLayout>
但尽管两者都居中,条目文本略高于标签文本,我也不知道如何使条目根据文本扩展宽度,或如何将其向右对齐(或堆栈布局末端)
我知道我已经将3个问题合并到了一个问题中,因此,如果有人能够提供帮助,哪怕只是其中的一部分,这将是一个很大的帮助。因此,对于您提到的左侧条目,您可以尝试为StackLayout、Label和entry提供EndAndExpand等水平选项 此外,对于“条目文本略高于标签文本”,您可以从底部到标签留出一些边距。如
Margin=“0,0,0,5”
您可以尝试使用3,4,5,这对边距效果最好。之所以会发生这种情况,是因为入口边界设置为透明,所以它在那里但不可见
如果您还有其他问题,请告诉我。因此,为了使条目如您所述在左侧增长,您可以尝试为堆栈布局、标签和条目提供水平选项,如EndAndExpand 此外,对于“条目文本略高于标签文本”,您可以从底部到标签留出一些边距。如
Margin=“0,0,0,5”
您可以尝试使用3,4,5,这对边距效果最好。之所以会发生这种情况,是因为入口边界设置为透明,所以它在那里但不可见
如果您还有其他问题,请告诉我。我使用一个简单的条目和标签进行测试,您可以使用HorizontalOptions属性并设置为EndAndExpand或End以使标签和条目正确对齐,如:
<StackLayout Orientation="Horizontal">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
</Grid>
<StackLayout Grid.Column="0" VerticalOptions="Start" HeightRequest="60">
<Label Text="Monthly Income" VerticalOptions="CenterAndExpand"></Label>
</StackLayout>
<StackLayout Grid.Column="1" Orientation="Horizontal" HorizontalOptions="FillAndExpand" VerticalOptions="Start" HeightRequest="60" >
<Label HorizontalOptions="EndAndExpand" VerticalOptions="Center" Text="£" FontSize="20" TextColor="#C7C7C7" />
<Entry PlaceholderColor="#C7C7C7" HorizontalOptions="End" WidthRequest="100" VerticalOptions="Center" FontSize="18" TextColor="#C7C7C7" />
</StackLayout>
</StackLayout>
其效果如下:
并使条目自动调整宽度,也许您应该使用自定义渲染器来实现它我使用一个简单的条目和标签进行测试,您可以使用水平选项属性并设置为EndAndExpand或End以使标签和条目正确对齐,如:
<StackLayout Orientation="Horizontal">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
</Grid>
<StackLayout Grid.Column="0" VerticalOptions="Start" HeightRequest="60">
<Label Text="Monthly Income" VerticalOptions="CenterAndExpand"></Label>
</StackLayout>
<StackLayout Grid.Column="1" Orientation="Horizontal" HorizontalOptions="FillAndExpand" VerticalOptions="Start" HeightRequest="60" >
<Label HorizontalOptions="EndAndExpand" VerticalOptions="Center" Text="£" FontSize="20" TextColor="#C7C7C7" />
<Entry PlaceholderColor="#C7C7C7" HorizontalOptions="End" WidthRequest="100" VerticalOptions="Center" FontSize="18" TextColor="#C7C7C7" />
</StackLayout>
</StackLayout>
其效果如下:
并使条目自动调整宽度,也许您应该使用自定义渲染器来实现它不幸的是,“EndAndExpand”只使条目宽1个字符,实际上并没有将其放在末尾。边距也只是将文本的底部切掉,而不是向上移动。不幸的是,“EndAndExpand”只使条目宽1个字符,实际上并没有将其放在末尾。页边空白也只是将文本的底部切掉,而不是向上移动。行吗?行吗?