c# - WPF - 扩展器中的滚动列表框

标签 c# wpf xaml listbox expander

我有一个 Expander,我想在其中包含一个 ListBox。当我打开 Expander 时,ListBox 只是展开屏幕(而不是展开以填充可用内容然后滚动)。

这是我的 XAML:

<DockPanel Margin="266.25,0,455,12" Name="dockPanel1">
    <StackPanel>
        <Expander Header="expander1" Name="expander1" Width="150" HorizontalAlignment="Left">
            <Grid>
                <Label>Testing</Label>
                <ScrollViewer>
                    <ListBox Name="lstBox"  FontSize="14" SelectionChanged="lstBox_SelectionChanged" />
                </ScrollViewer>
            </Grid>
        </Expander>
        <Expander Header="expander2" Name="expander2" Width="150" HorizontalAlignment="Left">
            <Grid >

            </Grid>
        </Expander>
    </StackPanel>
</DockPanel>

Expander1 打开时,它会扩展到 ListBox 的大小(离开屏幕)。如果我在网格上放置一个大小 (Height="275"),则它不会随窗口调整大小。

我希望它能拉伸(stretch)到窗口的大小,但不能超过。有办法吗?

最佳答案

您需要设置 ScrollViewer 的 Height 属性,否则它的大小将与其子项相同。下面是一些更新的 XAML:

<DockPanel>
    <StackPanel>
        <Expander Header="expander1" Width="150" HorizontalAlignment="Left">
            <StackPanel>
                <Label>Testing</Label>
                <ScrollViewer Height="75">
                    <ListBox>

                    </ListBox>
                </ScrollViewer>
            </StackPanel>
        </Expander>
        <Expander Header="expander2">
        </Expander>
    </StackPanel>
</DockPanel>

关于c# - WPF - 扩展器中的滚动列表框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1662004/

相关文章:

c# - 将带有 C 和 asm 代码的程序转换为 DLL

c# - 用于存储过程的 SqlBulkCopy

wpf - 如何使用 MVVM 调用用户控制方法?

c# - XAML Treeview,如何水平而不是垂直显示节点

c# - IQueryable.Where() 到底发生了什么?

c# - 在.NET Core 3.1中关闭C#套接字的正确方法是什么?

wpf - 使 ListView.ItemTemplate 中网格的宽度与 ListViewItem 的宽度相同

Wpf 数据网格最大行数

c# - 从 Storyboard中获取动画元素

wpf - 如何在 XAML 中增加 SymbolIcon 的大小?