我正在尝试在我的RichEditBox工具栏中添加一个按钮来切换语言,就像在MS Word中一样。我似乎无法做到这一点。 当我使用键盘(alt + shift)时,我可以毫无问题地在希伯来语和英语之间切换,但下面的代码(以及我尝试过的许多其他选项)都无效。 最后一条注释行也没有用。 为了清楚起见,没有例外,没有任何失败。 RichTextBox中的选定文本将流方向更改为RTL - 但语言仍为英语。 有什么想法吗?
谢谢, Yariv
已编辑:我发现了一个类似的问题HERE,似乎作者找到了解决问题的方法,但我不明白解决方案...
private void OnChangeLanguage(object sender, RoutedEventArgs e)
{
RichTextBox textBox = GetTemplateChild("innerRTB") as RichTextBox;
if (textBox == null)
return;
string langString = CultureInfo.CurrentCulture.IetfLanguageTag;
XmlLanguage newXmlLanguage = XmlLanguage.GetLanguage(langString);
TextRange selectionRange = new TextRange(textBox.Selection.Start, textBox.Selection.End);
selectionRange.ApplyPropertyValue(FlowDocument.FlowDirectionProperty, FlowDirection.RightToLeft);
selectionRange.ApplyPropertyValue(FlowDocument.LanguageProperty, "he-il");
// selectionRange.ApplyPropertyValue(FlowDocument.LanguageProperty, newXmlLanguage);
}