gpt4 book ai didi

c# - WPF 窗体的布局 - 水平列表框

转载 作者:太空宇宙 更新时间:2023-11-03 16:05:59 24 4
gpt4 key购买 nike

我需要并排显示多个列表框,但我不知道在任何时候会有多少。我已经将此作为网站完成,但已决定转移到桌面解决方案,因此需要从网站重新创建布局。

这就是我想要的: enter image description here

这就是我目前使用 WPF 的情况 enter image description here

这是我当前的 XAML 文件。

<Grid>
<StackPanel Height="auto" Width="auto">
<StackPanel Orientation="Horizontal">
<WrapPanel Orientation="Horizontal">
<ListBox ItemsSource="{Binding BoardMarker.Events}" Height="auto" Width="auto" Padding="-6,-3,0,-5">
<ListBox.ItemTemplate>
<HierarchicalDataTemplate>
<StackPanel>
<Label Foreground="White" FontWeight="Bold" Content="{Binding Name}" >
<Label.Background>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="Black" Offset="0"/>
<GradientStop Color="#FF7A7A7A" Offset="1"/>
</LinearGradientBrush>
</Label.Background>
</Label>
<ListBox ItemsSource="{Binding Markets}" Padding="-6,-5,-6,-10">
<ListBox.ItemTemplate>
<HierarchicalDataTemplate>
<StackPanel Width="auto">
<Grid MinWidth="120" Background="DodgerBlue">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="55*"/>
<ColumnDefinition Width="45*"/>
</Grid.ColumnDefinitions>
<Label Content="{Binding Name}" HorizontalAlignment="left" FontSize="8" Padding="0,2" Foreground="White" FontWeight="Bold"/>
<StackPanel Orientation="Horizontal" HorizontalAlignment="Right" Background="DodgerBlue" Margin="0,0,2,0" Grid.Column="1">
<Label Content="{Binding NumberOfRunners}" FontSize="7" ClipToBounds="False" SnapsToDevicePixels="True" Padding="0,2" Foreground="White" FontWeight="Bold"/>
<Label HorizontalAlignment="Right" Content="Run - " FontSize="7" Padding="0,2" Foreground="White" FontWeight="Bold"/>
<Label Content="{Binding NumberOfNonRunners}" FontSize="7" Padding="0,2" Foreground="White" FontWeight="Bold"/>
<Label Content="NR" FontSize="7" Padding="0,2" Foreground="White" FontWeight="Bold"/>
</StackPanel>
</Grid>

<ListBox ItemsSource="{Binding Selections}" Width="auto" Padding="-2">
<ListBox.ItemTemplate>
<HierarchicalDataTemplate>
<Grid Width="auto" MinWidth="120" Margin="-2">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="10*"/>
<ColumnDefinition Width="70*"/>
<ColumnDefinition Width="15*"/>
<ColumnDefinition Width="15*"/>
</Grid.ColumnDefinitions>
<Label Content="{Binding Number}" FontSize="7" Padding="2"/>
<Label Content="{Binding Name}" FontSize="7" Padding="2" Grid.Column="1" />
<Label Content="{Binding CurrentPrice}" FontSize="7" Padding="2" HorizontalAlignment="Right" Grid.Column="2"/>
<Label Foreground="DarkGray" Content="{Binding OpeningPrice}" FontSize="7" Padding="2" HorizontalAlignment="Right" Grid.Column="3"/>
</Grid>
</HierarchicalDataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</StackPanel>
</HierarchicalDataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</StackPanel>
</HierarchicalDataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</WrapPanel>
</StackPanel>
</StackPanel>
</Grid>

最佳答案

您的内部 StackPanel 有其默认方向,即垂直。将其设置为水平。如果您希望它们向左运行 -> 向右运行,然后到下一行,您可能需要考虑水平方向的 WrapPanel。

关于c# - WPF 窗体的布局 - 水平列表框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19399992/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com