簡體   English   中英

Stackpanel中的ListBox不起作用

[英]A ListBox inside a stackpanel doesn't work

我有以下控件:

<StackPanel>
    <TextBlock Text="Bill Benson"/>
    <Image Source="/Assets/Images/BB.png"/>
    <ListBox>
        <ListBox.ItemTemplate>
            <DataTemplate>
                <TextBlock Text=""/>
            </DataTemplate>
        </ListBox.ItemTemplate>
    </ListBox>
    <TextBlock Text="ends: 2015"/>
</StackPanel>

ListBox可以有任意多個項目。 我希望整個頁面從上到下滾動,但不向下滾動。 我怎樣才能做到這一點? 我知道問題是因為另一個可滾動控件內部有一個可滾動控件,但不知道如何解決。

您需要將高度分配給列表框控件,因為它采用自動方式,這意味着高度會根據其中的項目數不斷增加,因此無法訪問控件底部的項目,因此給它一個高度,或者代替堆棧面板,使其保持在具有行定義的網格中。

<StackPanel>
    <TextBlock Text="Bill Benson"/>
    <Image Source="/Assets/Images/BB.png"/>
    <ListBox Height="200">
        <ListBox.ItemTemplate>
            <DataTemplate>
                <TextBlock Text=""/>
            </DataTemplate>
        </ListBox.ItemTemplate>
    </ListBox>
    <TextBlock Text="ends: 2015"/>
</StackPanel>

嘗試為控件指定高度,尤其是StackPanelListBox的高度,即使只是“自動”高度也可以用於測試。 此外,與其設置ItemTemplate ,而不是設置ItemTemplate來將ListBox綁定到它,將更有用,請嘗試一些硬編碼值:

<ListBox>
    <TextBlock Text="1"/>
    <TextBlock Text="Test"/>
    <TextBlock Text="Another"/>
    <TextBlock Text="testing"/>
    <TextBlock Text="Sample"/>
</ListBox>

嘗試添加超出ListBox顯示范圍的內容,然后查看它是否滾動。

嘗試使用停靠面板:

<DockPanel>
    <StackPanel DockPanel.Dock="Top">
        <TextBlock Text="Bill Benson"/>
        <Image Source="/Assets/Images/BB.png"/>
    </StackPanel>
    <TextBlock DockPanel.Dock="Bottom" Text="ends: 2015"/>
    <ListBox>
        <ListBox.ItemTemplate>
            <DataTemplate>
                <TextBlock Text=""/>
            </DataTemplate>
        </ListBox.ItemTemplate>
    </ListBox>    
</DockPanel>

ListBox將自動展開以填充空間。 注意:它必須是DockPanel的最后一個子級。 (您可以使用LastChildFill="False"更改此功能)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM