2014-09-27 3 views
0

Я действительно зациклен на том, как обмениваться шрифтами с текстовым полем. Я бы хотел, чтобы мой пользователь мог выбирать между 3-4 различными шрифтами. У меня есть что-то вроде этого прямо сейчас:Windows Phone 8 Font Binding

<TextBox x:Name="MyTextBox" AcceptsReturn="True" FontSize="20" 
        FontFamily="{Binding FontSelection}" /> 

Но я понятия не имею, как C# должен выглядеть, и я не заладилась погуглить для него. Каков наилучший способ сделать это? Нужно ли создавать наблюдаемую коллекцию? Я попытался добавить шрифты в Application.Resources, но это не позволило мне.

Спасибо за любые ответы!

+0

Подробнее о привязке вы найдете [на MSDN] (http://msdn.microsoft.com/en-us/library/ms752347 (v = vs.110) .aspx). В вашем случае вы должны иметь в своем коде: свойство (!) FontSelection, возвращающее тип FontFamily, DataContext должен быть установлен правильно в зависимости от того, что вы хотите. Вы также можете реализовать 'INotifyPropertyChanged', чтобы изменения также обновили пользовательский интерфейс. Для всего этого вы найдете много примеров в SO, блогах, MSDN и многом другом. – Romasz

ответ

1

Это свойство FontSelection должно быть отдельным элементом. Сначала вы можете попробовать простую действительную строку (например, «Arial»), она может работать. Другим подходом является тип FontFamily, созданный Ромашем.

Также имеются конвертеры, довольно просты в применении. http://channel9.msdn.com/Series/Windows-Phone-8-1-Development-for-Absolute-Beginners/Part-25-Advanced-Binding-with-Value-Converters С этим вы можете сохранить выбор шрифта пользователя как простое число, например, и преобразовать его в соответствующий тип с помощью конвертера.