我想创建一个 ListBoxItem,其布局包括两个区域,一个“ float :左”和一个“ float :右”,项目总体填充分配给列表框的整个宽度,列表框填充其容器(即扩展以填充可用空间)。
如何在 XAML 中实现这一点?
谢谢
最佳答案
对于“项目整体填充分配给 ListBox 的整个宽度”,您需要这样的样式:
<Style TargetType="ListBoxItem">
<Setter Property="HorizontalAlignment" Value="Stretch" />
<Setter Property="HorizontalContentAlignment" Value="Stretch" />
</Style>
并可选地禁用列表框的水平滚动:
<ListBox ScrollViewer.HorizontalScrollBarVisibility="Disabled" .. >
对于 DataTemplate 的根面板,您可以使用停靠面板:
<DockPanel>
<SomeControlLeft DockPanel.Dock="Left" Margin="0 0 5 0" />
<SomeControlRight DockPanel.Dock="Right" Margin="5 0 0 0" />
<SomeControlFill />
</DockPanel>
或网格:
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="5" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="5" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<SomeControlLeft Grid.Column="0" />
<SomeControlRight Grid.Column="4" />
<SomeControlFill Grid.Column="2" />
</Grid>
关于c# - 如何在 XAML 中复制 'float: right'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7420867/