WPF中窗体打开的位置怎么控制?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WPF中窗体打开的位置怎么控制?相关的知识,希望对你有一定的参考价值。

我知道有似乎叫windowsStart什么的属性,但是那个不适合我的需求,那个只有几种固定的位置。

我想要的效果是,在主窗体的一个控件下方的位置打开这个窗体。控件的位置也是随机的,所以需要获取控件相对于整个屏幕的坐标,然后去设置窗体的位置。

如图,假设控件叫A,子窗体叫C,获取A位置和设置C位置的代码要怎么写呢?

你控件位置怎么确定,子窗体就怎么确定吧,子窗体也是一种特殊控件吧
还有,我觉得位置的确定与你后面的布局元素是什么有关吧。
如果是设置相对于屏幕的距离,可以用Left和Top属性。追问

控件的Left和Top属性?但是那个是相对于窗体的坐标吧?

参考技术A A是写死的吧,在底下写上子窗体,visibility设置为collapsed,点击控件设置改成visible追问

A是会移动的

WPF 子窗体 在 父窗体 中 打开,初学不懂,请指教

前提:
窗体A 布局如下

窗体B 布局如下

要求:
当单击btn按钮后,窗体B显示在窗口A的right_area区域,如何实现,苦恼。
在网上找了好久,没有找到,可能是我搜索的关键词有问题。
我曾经使用过
WPF 窗口 嵌套 窗口
WPF 窗口 内嵌 窗口
WPF 窗口 包含 窗口
等等排列组合,献丑了。希望大家不吝。
这个真不懂,大家如果解决的某个人回答的好,就点击赞同,帮我拿主意。
窗口A 继承 window
窗口B 继承 window

你这个没有必要使用窗体B吧,又要用窗体,又要嵌入到另一个窗体当中,你还不如直接添加一个控件在窗体A上。
1、要实现窗体B显示到窗体A的右侧位置,这个没有问题;
2、要实现将另一个控件添加到窗体A的right_area区域,这个也可以;

如需交流,请百度Hi
参考技术A 你的程序是WPF窗体,与Form窗体有很大的区别!
可以用B窗口从Page继承,right_area做成Label控件啥的都行,给他的Content new一个B窗口赋给他就行了。
参考技术B WPF不支持MDI式的多子窗口管理的。微软认为标签式的多子窗口更符合现代理念(其实就是用TabControl)。 参考技术C FROM 创建page

以上是关于WPF中窗体打开的位置怎么控制?的主要内容,如果未能解决你的问题,请参考以下文章

如何在鼠标位置打开具有 Windows 窗体父级的 WPF 窗口?

wpf 一个窗体中点击空白部分关闭另一个窗体

WPF无边框窗体怎么移动?C#

新手求教WPF中如何设置打开子窗体后父窗体关闭或隐藏.

wpf窗体当把他最大化时里面的控件也要调整位置的大小怎么做

WPF 子窗体 在 父窗体 中 打开,初学不懂,请指教