Используйте код WPF для отображения индексов и надстроек в C#
Чтобы добавить прогоны в элемент управления WPF TextBlock, вы добавляете объекты в свою коллекцию Inlines. Чтобы создавать индексы и надстрочные индексы, вы можете добавить объекты Run в коллекцию.
Программа использует следующие методы, чтобы упростить создание объектов Run.
// Сделайте прогон подстроки. private Run SubscriptRun(string text, int font_size) { Run run = new Run(text); run.FontSize = font_size; run.BaselineAlignment = BaselineAlignment.Subscript; return run; } // Сделайте надстрочный прогон. private Run SuperscriptRun(string text, int font_size) { Run run = new Run(text); run.FontSize = font_size; run.BaselineAlignment = BaselineAlignment.Superscript; return run; }
Метод SubscriptRun создает объект Run, который содержит нужный текст. Затем он дает новый размер шрифта и устанавливает его свойство BaselineAlignment, чтобы сделать текст индексом.
Метод SuperscriptRun аналогичен, за исключением того, что текст расшифровывается.
Следующий код использует эти методы для построения уравнений.
// Создаем уравнения с индексами и надстрочными индексами. private void Window_Loaded(object sender, RoutedEventArgs e) { txtWater.FontSize = 16; txtWater.Text = ""; txtWater.Inlines.Add("2H"); txtWater.Inlines.Add(SubscriptRun("2", 10)); txtWater.Inlines.Add(" + O"); txtWater.Inlines.Add(SubscriptRun("2", 10)); txtWater.Inlines.Add(" = 2H"); txtWater.Inlines.Add(SubscriptRun("2", 10)); txtWater.Inlines.Add("O"); txtPythagoras.FontSize = 16; txtPythagoras.Text = ""; txtPythagoras.Inlines.Add("3"); txtPythagoras.Inlines.Add(SuperscriptRun("2", 10)); txtPythagoras.Inlines.Add(" + 4"); txtPythagoras.Inlines.Add(SuperscriptRun("2", 10)); txtPythagoras.Inlines.Add(" = 5"); txtPythagoras.Inlines.Add(SuperscriptRun("2", 10)); }
Сначала код инициализирует размер шрифта элемента txtWater и очищает его текст. Затем он добавляет серию прогонов в коллекцию Inlines. Когда он вызывает метод коллекции Добавить и передает ему строку, строка добавляется в шрифт элемента управления и с обычным выравниванием базовой линии. Другие операторы добавляют подстроки подстроки.
Затем код выполняет аналогичные шаги, чтобы сделать элемент управления txtPythagoras отображать уравнение, использующее надстрочные индексы.