Geo*_* Jr 2 label underline width xamarin.forms stacklayout
我正在使用BoxView完成我的应用程序中的下划线。我有几个非常短的标签-诸如“是”或“否”之类的文本。这是其中一个带有BoxView的标签的XAML下划线:
<StackLayout Orientation="Vertical" Grid.Row="5" Grid.Column="1" Margin="0,4,0,4" HorizontalOptions="Start" BackgroundColor="Purple" MinimumWidthRequest="1">
<Label x:Name="txtUseMetric" TextColor="Blue" FontSize="Small" Text="{Binding UseMetricText}" BackgroundColor="Yellow">
<Label.GestureRecognizers>
<TapGestureRecognizer Tapped="Value_Tapped" CommandParameter="usemetric" />
</Label.GestureRecognizers>
</Label>
<BoxView BackgroundColor="Green" HeightRequest="1" MinimumWidthRequest="1" />
</StackLayout>
Run Code Online (Sandbox Code Playgroud)
我的问题是BoxView的宽度始终超出我尝试覆盖App.Xaml文件中的MinWidthRequest的文本,如下所示:
<Style TargetType="BoxView">
<Setter Property="MinimumWidthRequest" Value="3" />
</Style>
Run Code Online (Sandbox Code Playgroud)
但这没有效果。我提供了屏幕截图供您查看。
仅供参考-黄色是标签的宽度。您不会看到任何紫色(StackLayout的背景色),因为StackLayout和Label的宽度相同。第二个屏幕快照显示了如果删除BoxView,屏幕的外观-即Label和StackLayout的大小正确。
对于如何解决这个问题,有任何的建议吗?
请注意默认的HorizontalOptions并且Label派生自View:
默认值为LayoutOptions。除非另有说明,否则填写。
HorizontalOptions="Start"在“使用指标”标签上添加:
<Label x:Name="txtUseMetric" TextColor="Blue" FontSize="Small"
Text="{Binding UseMetricText}" BackgroundColor="Yellow"
HorizontalOptions="Start">
<BoxView BackgroundColor="Green" HeightRequest="1"
WidthRequest="{Binding Path=Width, Source={x:Reference txtUseMetric}"
HorizontalOptions="Start"/>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
524 次 |
| 最近记录: |