[英]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>
嘗試為控件指定高度,尤其是StackPanel
和ListBox
的高度,即使只是“自動”高度也可以用於測試。 此外,與其設置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.