Xaml Xamarin表单样式-支持多种目标类型

Xaml Xamarin表单样式-支持多种目标类型,xaml,xamarin.forms,xamarin.forms-styles,Xaml,Xamarin.forms,Xamarin.forms Styles,我最近更新了最新的Xamarin forms pre release 4.2版本。我遇到的一个显著的突破性变化是——假设我有以下风格: 在以前的版本中,Span和Label都支持相同的目标“Label”。就像-这是以前的工作: 同样的标签样式也支持Span。然而,现在在新版本中它并没有 我的问题是: 我们可以支持同一样式的标签和跨度吗?我们能不能不把两者的风格都定在同一个目标上?就像我尝试了以下方法,但它无法编译: 请帮帮我。我可以复制粘贴的风格,使2个不同的风格,但;如果有更好的方

我最近更新了最新的Xamarin forms pre release 4.2版本。我遇到的一个显著的突破性变化是——假设我有以下风格:


在以前的版本中,Span和Label都支持相同的目标“Label”。就像-这是以前的工作:


同样的标签样式也支持Span。然而,现在在新版本中它并没有

我的问题是: 我们可以支持同一样式的标签和跨度吗?我们能不能不把两者的风格都定在同一个目标上?就像我尝试了以下方法,但它无法编译:



请帮帮我。我可以复制粘贴的风格,使2个不同的风格,但;如果有更好的方法?

我可以在Xamarin.forms 4.2版上编译代码时重现您的问题,但在Xamarin.forms 4.1版上运行良好,因此我已向Microsoft支持团队报告了此问题

但是现在您可以看下面的代码来暂时解决您的问题

 <Label Margin="0,6,0,0" Style="{StaticResource LightTextLabelStyle}">
            <Label.FormattedText>
                <FormattedString>
                    <Span FontSize="20" Text="this is test, please take a look!" />
                    <Span FontSize="20" Text="hello world!" />
                </FormattedString>
            </Label.FormattedText>
        </Label>

到目前为止,最好的解决方案是为Label和Span创建两种不同的样式。早期的Xamarin表单支持两种样式,但现在不支持。 所以我最终得到了:

<Style x:Key="LightTextLabelStyle" TargetType="Label">
   <Setter Property="FontFamily" Value="{StaticResource TextLight}" />
   <Setter Property="FontSize" Value="15" />
   <Setter Property="TextColor" Value="{StaticResource greyishBrown}" />               
</Style>

<Style x:Key="LightTextSpanStyle" TargetType="Span">
   <Setter Property="FontFamily" Value="{StaticResource TextLight}" />
   <Setter Property="FontSize" Value="15" />
   <Setter Property="TextColor" Value="{StaticResource greyishBrown}" />               
</Style>


这会将所有跨度格式化为相同的样式,但基于跨度的样式属性(如指定的FontSize)会覆盖这些属性。我认为这不是最好的解决方案。我认为目前最好的解决方案是将两种不同的样式作为标签和跨距的目标,并使用它们。@Mirmal,你说得对,我已经向Microsoft支持团队报告了这个问题,请稍等。以下是问题链接: