2017-02-05 1 views
1

Я использую FormattedString для отображения настроенного текста на ярлыке на Xamarin.Forms. Я пытаюсь изменить цвет одного или нескольких элементов, например: $$ $$. Но даже если я меняю цвет Метка просто отображает все долларовые символы с одинаковым цветом: $$$$Как сделать ярлык для отображения форматированной строки с буквами разного цвета?

Это этикетки на взгляде:

<Label Text="{Binding AveragePrice, StringFormat='{0}'}" HorizontalTextAlignment="Center" /> 

И это код свойство привязывается к тексту метки на ViewModel

public FormattedString AveragePrice 
    { 
     get 
     { 
      return new FormattedString 
      { 
       Spans = 
       { 
        new Span { Text = "$", ForegroundColor=Color.Black }, 
        new Span { Text = "$", ForegroundColor=Color.Black }, 
        new Span { Text = "$", ForegroundColor=Color.Gray }, 
        new Span { Text = "$", ForegroundColor=Color.Gray } 
       } 
      }; 
     } 
    } 

Почему этот код не меняет цвет доллара символов? и как я могу это сделать?

+2

Связать AveragePrice с свойством FormattedText и удалить StringFormat.

+0

Отлично! это сработало. Спасибо @BillReiss. Вы должны отправить ответ, чтобы отметить вопрос, как ответ –

+0

ts, работающий в простой Label. Но тот же код не работает, если я загружаю эту метку внутри DataTemplate. Любой совет? – Divakar

ответ

5

Привязать AveragePrice к свойству FormattedText и удалять StringFormat.

Смежные вопросы