如果所有者窗口为空,var obj1 = {
prop1: 'string1',
prop2: 'string2'
}
var obj2 = {
prop1: 'string3'
}
Object.keys(obj1).forEach(function(key) {
if (obj2.hasOwnProperty(key)) obj2[key] = obj1[key];
});
console.log(obj2);
的工作原理是什么?是否有可能以某种方式改变这种行为(最好是在应用程序中全局,而不是在每个窗口上)?
在我的应用程序中,我有几个对话框(大多数都有助于更改一些应用程序的配置/设置),我在定义WindowStartupLocation="CenterOwner"
之前或之后显示。例如,在应用程序启动时,我会显示一个窗口,供有人选择应用程序语言。我通过应用程序设置窗格/窗口显示完全相同的内容。
我想要出现这个语言选择窗口
Application.Current.MainWindow
为空且选择窗口没有所有者 Application.Current.MainWindow
是定义窗口位置的属性。但是,如果我设置WindowStartupLocation
且所有者为空,则窗口将显示在屏幕的左上角。
到目前为止,我在'every'窗口构造函数中有一个if语句,用于检查owner是否为null并更改WindowStartupLocation="CenterOwner"
。
WindowStartupLocation
有更优雅的方式吗?例如,指示框架来处理它。设置类似WindowStartupLocation的回退值,例如,如果所有者为null,则为if (dialog.Owner == null && dialog.WindowStartupLocation == WindowStartupLocation.CenterOwner)
{
dialog.WindowStartupLocation = WindowStartupLocation.CenterScreen;
}