Xamarin.Forms FontAwesome не работает со связанными свойствами - PullRequest
0 голосов
/ 31 декабря 2018

Я хочу добавить шрифт awesome в свой проект Xamarin.Forms, и я добавил его в проект.Затем я добавил FontFamily к метке следующим образом:

<ListView.ItemTemplate>
                <DataTemplate>
                    <ViewCell>
                        <Grid Padding="15">
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="*" />
                                <ColumnDefinition Width="9*" />
                            </Grid.ColumnDefinitions>
                            <Label Grid.Column="0" Text="&#xf11a;" FontSize="20">

                                <Label.FontFamily>
                                    <OnPlatform x:TypeArguments="x:String">
                                        <On Platform="iOS" Value="Font Awesome 5 Free" />
                                        <On Platform="Android" Value="fa-regular-400.ttf#Font Awesome 5 Free Regular" />
                                    </OnPlatform>
                                </Label.FontFamily>

                            </Label>
                            <Label Grid.Column="1" Text="{Binding Title}" FontSize="20"/>
                        </Grid>
                    </ViewCell>
                </DataTemplate>
            </ListView.ItemTemplate>

Этот код работает нормально, и это результат enter image description here

Но когда я изменяю этот жестко закодированныйвещи в привязываемом свойстве вроде этого:

<Label Grid.Column="0" Text="{Binding FontAwesomeIconText}" FontSize="20">

И установите его так в c #

menuItems = new List<DrawerMenuItem>
            {
                new DrawerMenuItem {Id = MenuItemType.Browse, Title="Browse", FontAwesomeIconText = "&#xf11a;" },
                new DrawerMenuItem {Id = MenuItemType.About, Title="About" , FontAwesomeIconText = "&#xf11a;"}
            };

Это ломается.И я вижу его код

enter image description here

Я также попытался использовать ResourcesDictionary в моем файле App.xaml

<OnPlatform x:TypeArguments="x:String" x:Key="FontAwesome">
            <On Platform="iOS" Value="Font Awesome 5 Free" />
            <On Platform="Android" Value="fa-regular-400.ttf#Font Awesome 5 Free Regular" />
        </OnPlatform>

И получилтот же результат.В чем может быть проблема?

1 Ответ

0 голосов
/ 01 января 2019

Я нашел решение здесь https://forums.xamarin.com/discussion/30298/fontfamily-not-working-when-using-textproperty-binding

Он меняет строку, например &#xf11a;, на значение в юникоде, например \uf11a, и это работает для меня.Просто и понятно

ps Всех с новым годом!:)

...