首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >父WPF之上的子WPF (MvvmCross)

父WPF之上的子WPF (MvvmCross)
EN

Stack Overflow用户
提问于 2021-01-08 13:29:01
回答 1查看 164关注 0票数 1

我想在父窗口的顶部打开一个新的WPF窗口,或者至少在鼠标所在的位置。我可以接收正确的鼠标坐标,但它不能正确更新Left和Top属性,这意味着没有效果,但当我使用硬编码坐标时,它可以工作

代码语言:javascript
复制
this.Left = System.Windows.Input.Mouse.GetPosition(null).X;
this.Top = System.Windows.Input.Mouse.GetPosition(null).Y;

所以我尝试在WPF中使用WindowStartupLocation="CenterOwner“,但我不知道如何在MvvmCross中设置父WPF。我这样调用父ViewModel的子窗口:

代码语言:javascript
复制
ShowChildCommand = new MvxAsyncCommand(async () => await NavigationService.Navigate<ChildViewModel>());

但它没有提供任何选项来设置父级。我的子WPF类如下所示:

代码语言:javascript
复制
using MvvmCross.Platforms.Wpf.Presenters.Attributes;

namespace test.wpf.Views
{
    [MvxWindowPresentation(Identifier = nameof(ChildView), Modal = false)]
    public partial class GroupMembershipView
    {
        public ChildView()
        {
            InitializeComponent();
        }

    }

}

此外,我试图弄清楚如何设置它,也许是在WPF本身:

代码语言:javascript
复制
Owner="{x:Static test.wpf:App.CurrentMainWindow}

但没有成功。定义父窗口的正确方式是什么,或者只是在MvvmCross中将新的WPF窗口设置在顶部?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-09 14:07:10

我想我在下面的帖子中遗漏了什么:How to set window's owner to MainWindow through XAML in WPF?

因此,我将上述函数添加到我的App.xaml.cs中

代码语言:javascript
复制
public static MvxWindow CurrentMainWindow
{
    get { return (MvxWindow)Current.MainWindow; }
}

在WPF中,就像帖子中提到的那样:

代码语言:javascript
复制
xmlns:test.wpf="clr-namespace:test.wpf"
WindowStartupLocation="CenterOwner" Owner="{x:Static test.wpf:App.CurrentMainWindow}"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65623881

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档