Используйте код 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 отображать уравнение, использующее надстрочные индексы.
