要在WPF中弹出一个弹窗并显示一个列表,你可以使用Popup元素和一个包含列表的控件,如ListBoxListView。下面是一个示例:

<Grid>
    <Button Content="打开弹窗" Click="Button_Click" />
    <Popup x:Name="Popup" PlacementTarget="{Binding ElementName=Button}" IsOpen="False">
        <Border Background="White" BorderBrush="Black" BorderThickness="1">
            <ListBox ItemsSource="{Binding Items}">
                <!-- 列表项的显示模板 -->
                <ListBox.ItemTemplate>
                    <DataTemplate>
                        <TextBlock Text="{Binding}" Padding="5" />
                    </DataTemplate>
                </ListBox.ItemTemplate>
            </ListBox>
        </Border>
    </Popup>
</Grid>

在这个示例中,我们在Grid中放置了一个Button和一个PopupPopupPlacementTarget属性被设置为Button,这将使得弹窗相对于按钮进行定位。

Popup的内容是一个Border,它包含一个ListBox,其中的ItemsSource绑定到一个集合(在你的数据上下文中定义)。ListBoxItemTemplate定义了每个列表项的显示模板,这里使用了一个简单的TextBlock来显示列表项的文本。

当点击按钮时,我们可以通过在代码中处理Click事件来打开或关闭弹窗:

private void Button_Click(object sender, RoutedEventArgs e)
{
    Popup.IsOpen = !Popup.IsOpen;
}

以上示例中的Button_Click方法会反转PopupIsOpen属性,从而实现打开或关闭弹窗的效果。

请注意,这只是一个基本示例,你可以根据自己的需求进行更多的定制和样式设置。

希望这可以帮助到你!

12-08 10:55