Windows phone 8 MvvmCross插件中的中心弹出窗口

Windows phone 8 MvvmCross插件中的中心弹出窗口,windows-phone-8,mvvmcross,Windows Phone 8,Mvvmcross,我正在为MvvmCross创建一个插件,在其中我创建了一个弹出窗口,但是我在将它集中在屏幕上时遇到了一些问题。为了使其居中,我尝试使用以下代码: var page = ?; //No idea how to get page popup.HorizontalOffset = (screen.ActualWidth - ((FrameworkElement)popup.Child).ActualWidth) / 2; popup.VerticalOffset = (screen.ActualHei

我正在为MvvmCross创建一个插件,在其中我创建了一个弹出窗口,但是我在将它集中在屏幕上时遇到了一些问题。为了使其居中,我尝试使用以下代码:

var page = ?; //No idea how to get page
popup.HorizontalOffset = (screen.ActualWidth - ((FrameworkElement)popup.Child).ActualWidth) / 2;
popup.VerticalOffset = (screen.ActualHeight - ((FrameworkElement)popup.Child).ActualHeight) / 2;
在安卓系统中,我能够通过以下方式获得顶级活动:

Mvx.Resolve<IMvxAndroidCurrentTopActivity>().Activity
有没有类似的方法?或者是否有更好的方法将弹出窗口置于屏幕中央


谢谢

这是在屏幕中央添加弹出窗口的示例代码。把他的代码放在一个按钮的点击事件上

Popup p = new Popup();
TextBox tb = new TextBox { Text = "This is a test.\r\n Hello Test!" };
p.Child = tb;
p.VerticalOffset = (this.ActualHeight - tb.ActualHeight) / 2;
p.HorizontalOffset = (this.ActualWidth - tb.ActualWidth) / 2;
p.IsOpen = true;

希望,这对您有用。

我正在尝试在插件中创建弹出窗口,而不是直接在电话页面中创建,因此我无法使用“this.ActualWidth”。我第一次编写示例代码时,它与此完全相同。我的问题是将其迁移到插件。这就是为什么我很难看到屏幕。无论如何谢谢=)可以使用
Application.Current.RootVisual.RenderSize
Popup p = new Popup();
TextBox tb = new TextBox { Text = "This is a test.\r\n Hello Test!" };
p.Child = tb;
p.VerticalOffset = (this.ActualHeight - tb.ActualHeight) / 2;
p.HorizontalOffset = (this.ActualWidth - tb.ActualWidth) / 2;
p.IsOpen = true;