我们可以在Windows Phone 8的弹出窗口中使用longlistselector吗?

时间:2014-02-02 07:54:23

标签: windows-phone-8 popup longlistselector

如何在弹出控件中使用longlistselector?

如果不可能,那么任何其他方式将longlistselector / listbox显示为弹出窗口?

2 个答案:

答案 0 :(得分:2)

作为弹出窗口,您可以 CustomMessageBox CustomMessageBox 的实例具有属性内容,与任何其他内容控件的内容属性没有区别。因此,您可以将LongListSelector或ListBox或任何您想要的内容(甚至是Pivot和Panorama)放在那里,而不是调用显示方法。如果用户单击2个默认按钮中的一个,CustomMessageBox将关闭,但您可以隐藏它们(属性 IsLeftButtonEnabled IsRightButtonEnabled )并通过调用<自己的逻辑关闭CustomMessageBox strong>解雇方法。有一些有用的事件:最有用的是 Dismissed ,在CustomMessageBox关闭(解散)后立即引发,其处理程序包含DismissedEventArgs,其中有用户选择的结果(选择了右或左按钮) ,如果他们在屏幕上),当然发送者(CustomMessageBox)。如果你想在CustomMessageBox关闭后想要一些逻辑,使用Dismissed事件,Show方法将不会停止程序流。

这是展示某些内容的最简单方法。它不是一个弹出窗口,但它的行为就像它。

但是如果你不习惯使用popup if,那么就有了你的Child属性,把Grid和GridBox放在Grid中。但是你必须设置弹出子的宽度和高度的值。

答案 1 :(得分:0)

您可以创建一个新页面,只需将LongListSelector放入其中即可。

例如(页面称为MyPopupPage):

    <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
        <con:LongListSelector x:Name="LongListSelector">
            <con:LongListSelector.ItemTemplate>
                <DataTemplate>
                    <TextBlock Text="{Binding Name}"/>
                </DataTemplate>
            </con:LongListSelector.ItemTemplate>
        </con:LongListSelector>
    </Grid>

然后用你想要的任何东西填写(参见:http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj244365(v=vs.105).aspx

在您的MainPage(应该打开弹出窗口的页面)中: 创建Popup类型的对象,如:

Popup LLSPopup = new Popup();

创建一个方法将MyPopupPage设置为弹出窗口的叠加层:

private void ShowPopup()
{
    MyPopupPage ovr = new MyPopupPage();
    this.LLSPopup.Child = ovr;
    this.LLSPopup.IsOpen = true;
}