если приложения на C #, вы можете использовать развертывание ClickOnce , что является хорошим вариантом, если вы не можете гарантировать, что у пользователя будет приложение, однако вам придется пересобрать приложения с вариантами развертывания и получить некоторый шаблонный код из каждого проекта.
Вы также можете использовать Javascript .
Или вы можете зарегистрировать приложение для обработки нового веб-протокола , который вы можете определить. Это также может быть протокол «выбора приложения», поэтому при каждом нажатии на приложение оно будет ссылаться на страницу вашего нового протокола, а вся обработка этого протокола передается в ваше «приложение выбора», которое использует аргументы для поиска и запуска. приложение на клиентском ПК.
НТН
Попробуйте это для решения, более ориентированного на WPF.
TextBlock.Inlines.Add(new Run("First"));
TextBlock.Inlines.Add(new LineBreak());
TextBlock.Inlines.Add(new Run("Second"));
См. Также: Ответ на основе XAML
textBlock.Text = string.Format("One{0}Two", Environment.NewLine);
При написании C # я всегда использую "System.Environment.Newline" для возврата каретки новой строки.
Это означает, что вам не нужно беспокоиться о кодировке символов или о том, какую целевую ОС использует .
Я также обнаружил, что он работает в графическом интерфейсе пользователя WPF при вызове из базового файла .cs.