弹出窗口或弹出窗口以显示附加信息

时间:2015-11-10 23:12:51

标签: c# windows-runtime windows-10 uwp

我希望在我的应用上方显示弹出窗口,其中包含其他信息,我的信息为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;
    

那么我应该走哪条路,尝试编辑弹出模板或通过设置垂直和水平偏移来居中弹出窗口? 或者有更好的方式来显示像窗口一样的弹出窗口,例如项目列表或其他

1 个答案:

答案 0 :(得分:3)

默认情况下,Flyout内部有ScrollViewer。您可以在FlyoutPresenter styles and templates找到其模板。如果需要,您可以通过设置Flyout.FlyoutPresenterStyle属性来编辑它并使用新模板。

如果您想使用Popup' HorizontalAlignmentVerticalAlignment属性,则需要添加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 class备注部分中,它说:

  

您可以通过设置HorizontalOffsetVerticalOffset属性来定位弹出窗口弹出相对于其直接父容器偏移。

我认为在使用HorizontalAlignment.CenterVerticalAlignment.Center时,它会将HorizontalOffsetVerticalOffset设置为其父级宽度和高度的一半。

备注部分,它还说:

  

如果FlyoutMenuFlyoutToolTipMessageDialog更合适,请勿使用弹出式

所以我认为在你的情况下使用Flyout是一种更好的方式。