弹出窗口或弹出窗口以显示附加信息
我希望在我的应用程序顶部显示弹出窗口以及其他信息,我的信息是Listview
有~500项我已经尝试过:
-
flyout
问题 – >它可能里面有scrollViewer,所以我的listview没有正确虚拟化其他一切正常。 有我的代码:Flyout myFlyout = new Flyout(); myFlyout.Placement = FlyoutPlacementMode.Full; myFlyout.Content = myListView; myFlyout.ShowAt(this);
-
popup
问题 – >它不居中,verticalAlignment不起作用,水平也不起作用Popup myPopup = new Popup(); myPopup.Child = myListView; myPopup.IsOpen = true;
那么我应该走哪条路,尝试编辑弹出模板或通过设置垂直和水平偏移来居中弹出窗口? 或者有更好的方式来显示像窗口一样的弹出窗口,如项目列表或其他类似的信息
默认情况下, Flyout
内部有一个ScrollViewer
。 您可以在FlyoutPresenter样式和模板中找到它的模板 。 如果需要,可以通过设置Flyout.FlyoutPresenterStyle属性来编辑它并使用新模板。
如果要使用Popup
的HorizontalAlignment
和VerticalAlignment
属性,则需要将Popup
添加为可视树中元素的子元素。 例如:
Popup myPopup = new Popup(); //MainGrid is the top Grid in the Page MainGrid.Children.Add(myPopup); myPopup.HorizontalAlignment = HorizontalAlignment.Center; myPopup.VerticalAlignment = VerticalAlignment.Center; myPopup.Child = myListView; myPopup.IsOpen = true;
但plesae指出,这实际上不会使Popup
居中。 它使Popup
的左上角居中。 在Popup类的备注部分,它说:
您可以通过设置HorizontalOffset和VerticalOffset属性来定位Popup 。 Popup相对于其直接父容器进行偏移。
我认为在使用HorizontalAlignment.Center
和VerticalAlignment.Center
,它将HorizontalAlignment.Center
和VerticalAlignment.Center
设置为其父级宽度和高度的一半。
在备注部分,它还说:
如果Flyout , MenuFlyout , ToolTip或MessageDialog更合适,请不要使用弹出 窗口 。
所以我认为在你的情况下使用Flyout
是一种更好的方法。