У меня была такая же проблема.
Я пытался:
- button.content = "Line1 \ nLine2" (не сработало, возможно я что-то не так сделал);
- заменить текст кнопки новой меткой (не позволяет выровнять текст по центру);
- заменить текст кнопки текстовым блоком (я думаю, что это позволяет выровнять текст по центру, но не переносить его);
Я видел ответы, в которых упоминалось использование стековых панелей или сеток.
Я видел ответы, говорящие не использовать текстовое поле .
Несмотря на то, что ОП говорит, что \n
работает, я не думаю, что это правильный путь, по моему мнению, вы просто грубо заставляете контроль делать то, что вы хотите, и если в любой момент вы вам нужно изменить текст, вам нужно будет пойти и проверить, правильно ли обернут текст или нужно ли \n
находиться в другой позиции.
То, что я нашел лучшим способом (мне), это заменить содержимое кнопки текстовым полем (вы можете просто перетащить и отпустить, не нужно связываться с XAML) и установить следующие свойства, как указано:
IsReadOnly = true;
Focusable = false (необязательно);
Я думаю, что Focusable = false
запрещает пользователю выбирать текст, хотя он не может его редактировать, я не хочу, чтобы он даже выбирал его (личный вкус).
Это сделает текстовое поле похожим на метку, но с преимуществом, позволяющим вам выравнивать текст по центру.