我想在父窗口的顶部打开一个新的WPF窗口,或者至少在鼠标所在的位置。我可以接收正确的鼠标坐标,但它不能正确更新Left和Top属性,这意味着没有效果,但当我使用硬编码坐标时,它可以工作
this.Left = System.Windows.Input.Mouse.GetPosition(null).X;
this.Top = System.Windows.Input.Mouse.GetPosition(null).Y;所以我尝试在WPF中使用WindowStartupLocation="CenterOwner“,但我不知道如何在MvvmCross中设置父WPF。我这样调用父ViewModel的子窗口:
ShowChildCommand = new MvxAsyncCommand(async () => await NavigationService.Navigate<ChildViewModel>());但它没有提供任何选项来设置父级。我的子WPF类如下所示:
using MvvmCross.Platforms.Wpf.Presenters.Attributes;
namespace test.wpf.Views
{
[MvxWindowPresentation(Identifier = nameof(ChildView), Modal = false)]
public partial class GroupMembershipView
{
public ChildView()
{
InitializeComponent();
}
}
}此外,我试图弄清楚如何设置它,也许是在WPF本身:
Owner="{x:Static test.wpf:App.CurrentMainWindow}但没有成功。定义父窗口的正确方式是什么,或者只是在MvvmCross中将新的WPF窗口设置在顶部?
发布于 2021-01-09 14:07:10
我想我在下面的帖子中遗漏了什么:How to set window's owner to MainWindow through XAML in WPF?
因此,我将上述函数添加到我的App.xaml.cs中
public static MvxWindow CurrentMainWindow
{
get { return (MvxWindow)Current.MainWindow; }
}在WPF中,就像帖子中提到的那样:
xmlns:test.wpf="clr-namespace:test.wpf"
WindowStartupLocation="CenterOwner" Owner="{x:Static test.wpf:App.CurrentMainWindow}"https://stackoverflow.com/questions/65623881
复制相似问题