Xamarin表单:如何将NamedSize.Medium应用于OnIdiom元素

时间:2017-06-02 02:26:34

标签: xaml xamarin styles font-size

我可以通过将值传递给不同设备的OnIdiom元素来更改字体大小。但是如何将FontSize Medium传递给xaml中的OnIdiom,传入的TypeArguments是什么。

<Style x:Name="normalFont">
    <Setter Property="FontSize">
        <Setter.Value>
        <OnIdiom.Phone>
        <OnPlatform x:TypeArguments="x:Double" iOS="Small" Android="Small" />
            </OnIdiom.Phone>
            <OnIdiom.Tablet>
                <OnPlatform x:TypeArguments="x:Double" iOS="Medium" Android="Medium" />
            </OnIdiom.Tablet>
        </Setter.Value>
    </Setter>
</Style>

我知道它不应该是我应该放什么类型的双倍。

3 个答案:

答案 0 :(得分:0)

X:TypeArguments = “NamedSize”

而不是

X:TypeArguments = “×:双”

答案 1 :(得分:0)

我是在xaml附带的Xaml.cs文件中完成的 在构造函数中添加此

if (Device.Idiom == TargetIdiom.Phone)
    {
      normalFont.FontSize=Device.GetNamedSize(NamedSize.Small,typeof(Style));
        }
        else if (Device.Idiom == TargetIdiom.Tablet)
        {
            normalFont.FontSize = Device.GetNamedSize(NamedSize.Medium, typeof(Style));
        }

答案 2 :(得分:0)

在这里您可以看到必须如何做。

https://forums.xamarin.com/discussion/122883/error-setvalue-can-not-convert-large-to-type-system-double-when-using-style-with-onidiom

基本上,您必须创建一个MarkupExtension来处理转换。