使用XAMLC时,在FontSize中使用静态标记扩展会导致无效的强制转换

时间:2016-07-28 14:08:00

标签: c# xaml xamarin xamarin.forms

现在我尝试激活XAMLC编译器,但是我得到了

  

System.InvalidCastException:指定的强制转换无效

它停在InitializeComponent ()

可以正常使用
<Button Text="7" Grid.Row="1" Grid.Column="0"
            BackgroundColor="White" TextColor="Black"
            FontSize="36" BorderRadius="0"
            Clicked="OnSelectNumber" />

但与

崩溃
<Button Text="7" Grid.Row="1" Grid.Column="0"
            BackgroundColor="White" TextColor="Black"
            FontSize="{x:Static local:SharedResources.ButtonFontSize}" BorderRadius="0"
            Clicked="OnSelectNumber" />

以下是我的设置:

前缀:

<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="Calculator.MainPage"
             xmlns:local="clr-namespace:Calculator">

SharedResources.cs:

namespace Calculator
{
    public static class SharedResources
    {
        public static string ButtonFontSize
        {
            get { return "36"; }
        }
    }
}

因此stringFontSize似乎存在问题。我能做些什么来完成这项工作?我正在iOS模拟器(iOS 9.3)上进行测试。

1 个答案:

答案 0 :(得分:3)

FontSize应该以{{1​​}}(而不是double)的形式返回:

string
  

FontSize - 字体大小为double。

https://developer.xamarin.com/guides/xamarin-forms/user-interface/text/fonts/