![](/img/trans.png)
[英]Grid column with width="*" does not use all available space as expected
[英]ListBox does not use all available space within Grid.Column - WPF
我有一個已分配給Grid.Column 0的ListBox控件,該控件的寬度定義為'*'值,但是在呈現時,有相當大的空間沒有被使用。
我還注意到ListBox控件本身周圍存在某種邊界,但是我沒有在標記內添加邊界。
我的用戶界面(關注區域標記為紅色):
我的標記:
<Window.Resources>
<DataTemplate x:Key="GameImagesTemplate" >
<StackPanel Orientation="Vertical">
<Image Source="{Binding FileInfo.FullName}" Margin="8,8,8,8" Height="70" Width="70" />
<Label Content="{Binding Name}" Width="70" />
</StackPanel>
</DataTemplate>
<DataTemplate x:Key="GameTemplate">
<StackPanel>
<Label Content="{Binding Name}" Background="Gray" FontSize="16" />
<ListBox x:Name="imageContent" ItemsSource="{Binding FileList}" ItemTemplate="{StaticResource GameImagesTemplate}" ScrollViewer.HorizontalScrollBarVisibility="Disabled" >
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel Orientation="Horizontal" IsItemsHost="True" />
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
</ListBox>
</StackPanel>
</DataTemplate>
</Window.Resources>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<ListBox x:Name="ContentList" ItemTemplate="{StaticResource GameTemplate}" Grid.Column="0" ScrollViewer.HorizontalScrollBarVisibility="Disabled" />
<StackPanel Grid.Column="1" Background="DarkGray">
<Button Click="OnLoad">_Load</Button>
<Button Click="OnSave">_Save</Button>
<Button Click="OnAdd">_Add</Button>
<Button Click="OnDelete">_Delete</Button>
</StackPanel>
</Grid>
我將如何解決這兩個問題。 它是ListBox控件的默認行為嗎?
非常感謝
是的,這是默認行為。
在對齊的情況下,看起來每個ListBoxItem
都有一個WrapPanel
,沒有足夠的空間將其他項目放置在第1行上。由於ListBox
上的HorizontalContentAlignment
設置默認為Left,因此剩余空間未使用。 此設置又受默認ListBoxItem
約束。 在ListBox
上設置HorizontalContentAlignment="Stretch"
應該可以解決該問題。
外邊界來自BorderBrush
和BorderThickness
的默認設置。 設置BorderThickness="0"
將完全消除它。
還有其他一些默認的Padding
設置,可以在默認的樣式和模板中增加一些間距。 如果您想了解更多信息,請在Blend中的項目中添加一個ListBox
,並復制其默認Template
和ItemContainerStyle
然后查看XAML。 在不需要選擇行為的情況下,也請考慮使用基本ItemsControl
,因為它沒有任何這些類型的默認設置。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.