我有一个Grid根容器,定义了两列(只有一行).
第一列具有灵活的宽度,第二列具有300px的固定宽度.
接下来,我ListBox在第二列内部放置了水平和垂直拉伸,即填充整个第二列.
最后,我已经为ListBox一个垂直方向定义了一个项目模板StackPanel,里面有一个DockPanel和几个TextBlocks.
<!-- Data template for ListBox -->
<DataTemplate DataType="{x:Type entities:Track}">
<StackPanel Orientation="Vertical">
<DockPanel>
<TextBlock DockPanel.Dock="Left" Text="Now playing" />
<TextBlock DockPanel.Dock="Right" Text="Time remaining" />
</DockPanel>
<TextBlock Text="{Binding Artist}" />
<TextBlock Text="{Binding Title}" />
</StackPanel>
</DataTemplate>
...
<ListBox
Grid.Column="1"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch" />
Run Code Online (Sandbox Code Playgroud)
我有两个问题:
StackPanel填充整个宽度ListBox?现在,它只需要足够的空间来容纳内部DockPanel和TextBlock内部.它不适合ListBox或的宽度ListBoxItem.DockPanel填充整个宽度StackPanel,即其父级?现在发生的事情是,即使TextBlocks StackPanel的宽度超过了DockPanel它的宽度,它也不会伸展以匹配它们的宽度.谢谢您的帮助.
Fre*_*lad 24
您可以ListBoxItem通过HorizontalContentAlignment在ItemContainerStyle中设置来制作每个拉伸的内容
<ListBox ...>
<ListBox.ItemContainerStyle>
<Style TargetType="ListBoxItem">
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
</Style>
</ListBox.ItemContainerStyle>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
21518 次 |
| 最近记录: |