是否只能在WPF中为一个窗口更改系统语言?
我知道InputLanguageManager但我认为它改变了整个系统的语言.
你遇到过这样的问题:
System.Windows.Data Error: 4 : Cannot find source for binding with reference 'RelativeSource FindAncestor, AncestorType='System.Windows.Controls.UserControl', AncestorLevel='1''. BindingExpression:Path=DataContext; DataItem=null; target element is 'ContextMenu' (Name=''); target property is 'DataContext' (type 'Object')
Run Code Online (Sandbox Code Playgroud)
码:
<ContextMenu DataContext="{Binding Path=DataContext, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type UserControl}}}"
Run Code Online (Sandbox Code Playgroud)
上下文菜单位于:
ListBox-> ListBoxItemTemplate -> DataGrid -> DataGrid.ContextMenu
Run Code Online (Sandbox Code Playgroud)
我在ListBox控件中还有另一个Binding,它完全没有任何问题.
我在WPF中遇到OSK问题。我通过InputLanguageManager更改InputLanauage,如下所示:
InputLanguageManager.SetInputLanguage(_targetKeyboardWindow, CultureInfo.CreateSpecificCulture("ru"));
Run Code Online (Sandbox Code Playgroud)
但这是行不通的。我需要更改应用程序的实际视图(通过单击后退按钮),然后在InputLanguageManager中所做的更改开始起作用。但是,当我尝试在更改输入语言后从代码隐藏中更改视图时,它不起作用。
此外,在调试器中,我可以看到更改语言后,当前语言仍然是默认语言(以前的语言)
任何的想法?