嗨,我在这里有一个非常奇怪的效果:
我有一个主窗口,其内容填充了包含表单显示的完整可视树。
要显示的第一个表单是父表单,它允许调用子表单。
当我加载子表单时,Parent基本上备份到堆栈中,然后将新内容设置为窗口。
当我关闭子表单时,备份的父表单将被设置为窗口内容,并且子窗口将被删除。
现在出现问题: 我将一组对象加载到列表框中。 列表框使用文本块来显示对象'性能 (FirstName,LastName,PhoneNumber,MobileNumber,Email),在每个文本块之后,Xaml中包含逗号以分隔条目。
但是:如果文本块为空,则不得显示相应的逗号,如下所示:
我设法使用转换器来完成此操作,该转换器分析要显示的逗号。
这项工作非常完美,但是当我显示一个子表单并将其关闭时,显示屏的逗号可见性已损坏:
我做了两个观察:
有什么可以导致这种影响吗?我怎么能绕过他们?
此致
答案 0 :(得分:1)
最后,我发现设置Window.Language是个问题。
我在mainwindows构造函数中执行此操作:
this.Language = System.Windows.Markup.XmlLanguage.GetLanguage(Thread.CurrentThread.CurrentUICulture.Name);
例如,这是正确显示数字所必需的。
但现在我发出以下块,所有文化都适用。 [在启动期间,我检查默认的Ui文化,如果我将其设置为任何其他文化,我相应地设置了App.CultureChanged]:
if (!App.CultureChanged )
FrameworkElement.LanguageProperty.OverrideMetadata(typeof(FrameworkElement), new FrameworkPropertyMetadata(XmlLanguage.GetLanguage(CultureInfo.CurrentCulture.IetfLanguageTag)));
this.Language = System.Windows.Markup.XmlLanguage.GetLanguage(Thread.CurrentThread.CurrentUICulture.Name);