布局有什么问题XAML

What's wrong with the layout XAML

告诉我为什么在使用应用程序代码时,分配的是整个区域的列表框,而不是放置在 table 行中的特定行 listboxItem?

<ListBox x:Name="menu" SelectionMode="Single" SelectionChanged="Changed">
       <Grid>
          <Grid.RowDefinitions>
             <RowDefinition Height="Auto"/>
             <RowDefinition Height="Auto"/>
             <RowDefinition Height="100"/>
          </Grid.RowDefinitions>
          <ListBoxItem Name="Main" Grid.Row="0">
             <StackPanel Orientation="Horizontal">
                <TextBlock FontSize="20" FontFamily="Segoe MDL2 Assets" 
                           Text="&#xE710;"/>
                <TextBlock FontSize="17" Text="Add" Margin="10 0 0 0"/>
             </StackPanel>
          </ListBoxItem>
         <ListBoxItem Name="Details" Grid.Row="1">
            <StackPanel Orientation="Horizontal">
               <TextBlock FontSize="20" FontFamily="Segoe MDL2 Assets" 
                          Text="&#xE71B;"/>
               <TextBlock FontSize="17" Text="Add Link" Margin="10 0 0 0"/>
             </StackPanel>
          </ListBoxItem>
       </Grid>
    </ListBox>

如果您通过直接添加 UIElement 项来填充 ListBox 控件,则 UIElement 会添加到 Items 集合中。

对于你的场景,你实际上只添加了一个 GridListBox 的 Items 集合,然后在这个 Grid 中,你添加了另外两个 ListBoxItemListBoxItem并没有直接添加到Items集合中,而是添加到一个Item的Grid控件中,这里的Grid控件更像是这个Item的root控件.这是您遇到问题的原因:

the whole area is allocated listbox, rather than a specific line listboxItem placed in a table row?

所以,根据你的代码和你的问题,我想你需要的可能是这样的:

<ListBox x:Name="menu" SelectionMode="Single" SelectionChanged="Changed">
    <ListBoxItem Name="Main">
        <StackPanel Orientation="Horizontal">
            <TextBlock FontSize="20" FontFamily="Segoe MDL2 Assets"
                   Text="&#xE710;" />
            <TextBlock FontSize="17" Text="Add" Margin="10 0 0 0" />
        </StackPanel>
    </ListBoxItem>
    <ListBoxItem Name="Details" HorizontalAlignment="Left">
        <StackPanel Orientation="Horizontal">
            <TextBlock FontSize="20" FontFamily="Segoe MDL2 Assets"
                  Text="&#xE71B;" />
            <TextBlock FontSize="17" Text="Add Link" Margin="10 0 0 0" />
        </StackPanel>
    </ListBoxItem>
</ListBox>

我不确定你的第三个 RowDefinition 是干什么用的,如果你对此有疑问,可以发表评论。最好描述一下你想要实现的布局。