становится ..
ная цель приложения, над которым я работаю в WPF, состоит в том, чтобы разрешить редактирование и, следовательно, печать текстов песен с гитарными аккордами поверх него.
Возможно, вы видели аккорды, даже если вы не играете на каком-либо инструменте. Чтобы дать вам представление, это выглядит так:
E E6
I know I stand in line until you
E E6 F#m B F#m B
think you have the time to spend an evening with me
Но вместо этого уродливого моноширинного шрифта я хочу иметьTimes New Roman
шрифт с кернингом для текста и аккордов (аккорды жирным шрифтом). И я хочу, чтобы пользователь мог редактировать это.
Этот сценарий не поддерживаетсяRichTextBox
, Вот некоторые из проблем, которые я не знаю, как решить:
TextPointer
лирика). Когда пользователь редактирует текст, я хочу, чтобы аккорд оставался над нужным символом. Пример:.
E E6
I know !!!SOME TEXT REPLACED HERE!!! in line until you
Перенос строки: 2 строки (1-я с аккордами и 2-я с лирикой) - это логически одна строка, когда речь идет о переносе строк. Когда слово переносится на следующую строку, все аккорды, находящиеся над ним, также должны переноситься. Кроме того, когда аккорд обернет слово, что это над ним, также обернуть. Пример:.
E E6
think you have the time to spend an
F#m B F#m B
evening with me
Аккорды должны оставаться над правильным символом, даже если аккорды расположены слишком близко друг к другу. В этом случае некоторое дополнительное пространство автоматически вставляется в строку текста. Пример:.
F#m E6
...you have the ti me to spend...
Скажи, у меня есть лирикаTa VA
и аккордA
, Я хочу, чтобы текст был похож