如何在 WPF 中将 OpenFileDialog 置于其父窗口的中心?
我正在使用 WPF 的 OpenFileDialog,并且我寻找一种方法来确保它在显示时位于父窗口的中心。它似乎缺少像 StartupPosition 这样可能启用此功能的明显属性。
有人知道其中的秘密吗?
更新:似乎我第一次打开它时,它确实出现在父级的中心,但是如果我移动它,它就会记住它的位置,并且不会在后续情况下以中心方式打开。
I'm using WPF's OpenFileDialog, and I'm looking for a way to make sure it is centered in the parent window when shown. It seems to be missing obvious properties like StartupPosition that might enable this.
Does anybody know the secret?
Update: It seems that the first time I open it, it does appear in the center of the parent, but if I move it, it then remembers its position, and doesn't open centered on subsequent occassions.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
下面是一个通用类的代码,它允许使用像这样的“子对话框”:
这就是您在标准 WPF 应用程序中使用它的方式。这里我只是复制父窗口大小,但我会让你做中心数学:-)
here is the code of a generic class that allows to play with "sub dialogs" like this one:
And this is how you would use it in a standard WPF app. Here I just copy the parent window size, but I'll let you do the center math :-)
WPF 中的 CommonDialog 不是从窗口类继承的,因此它没有 StartupPosition 属性。
查看此博客文章以获取一种解决方案:OpenFileDialog in .NET on远景
简而言之,它将对话框包装在窗口中然后显示它。
CommonDialog in WPF does not inherit from window class, so it does not have StartupPosition property.
Check this blog post for one solution: OpenFileDialog in .NET on Vista
In short, it wraps dialog in a window and then shows it.