C# 如何在Xamarin.forms中复制标签的viewbox行为?
我想将我的WPF应用程序重写为Xamarin.forms,但我一直无法将标签扩展到最大可用空间 在WPF中,我可以简单地执行以下操作:C# 如何在Xamarin.forms中复制标签的viewbox行为?,c#,xaml,xamarin,xamarin.forms,C#,Xaml,Xamarin,Xamarin.forms,我想将我的WPF应用程序重写为Xamarin.forms,但我一直无法将标签扩展到最大可用空间 在WPF中,我可以简单地执行以下操作: <Viewbox Grid.ColumnSpan="2" Grid.RowSpan="3" HorizontalAlignment="Center" VerticalAlignment="Center"> <Label Width="auto" Height="auto" HorizontalAl
<Viewbox Grid.ColumnSpan="2" Grid.RowSpan="3"
HorizontalAlignment="Center" VerticalAlignment="Center">
<Label Width="auto" Height="auto"
HorizontalAlignment="Center" VerticalAlignment="Center"
Content="ABCD"/>
</Viewbox>
我尝试了类似的方法,但它只扩展标签的背景,而不是文本
<Label Grid.ColumnSpan="2" Grid.RowSpan="3"
HorizontalOptions="FillAndExpand"
VerticalOptions="FillAndExpand"
Text="ABCD"
/>
xamarin.forms是否提供了与WPF中的viewbox内部标签类似的行为?xamarin中没有标准的viewbox,因此简短的回答是:否
我发现至少有一个第三方实现:但我不能保证它,因为我没有使用过它。我提出了一个非常简单的解决方案: XAML: 当我在UWP中调整窗口大小时,它非常滞后,但至少现在,它完成了工作。我将在未来努力改进,因此任何建议都将不胜感激
<BoxView x:Name="measureViewBox"
Grid.RowSpan="3" Grid.ColumnSpan="2"
HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand"
Opacity="0"/>
<Label x:Name="myLabel"
Grid.RowSpan="3" Grid.ColumnSpan="2"
HorizontalTextAlignment="Center" VerticalTextAlignment="Center"
HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand"
Text="ABCD">
private void ContentView_SizeChanged(object sender, EventArgs e)
{
double fontSize = measureViewBox.Width;
myLabel.FontSize = fontSize;
SizeRequest measurement = myLabel.Measure(double.PositiveInfinity, double.PositiveInfinity);
while (measurement.Request.Width >= measureViewBox.Width)
{
fontSize -= 2;
myLabel.FontSize = fontSize;
measurement = myLabel.Measure(double.PositiveInfinity, double.PositiveInfinity);
}
}