【问题标题】:What's wrong with the layout XAML布局 XAML 有什么问题
【发布时间】:2016-11-12 16:13:30
【问题描述】:

告诉我为什么在处理应用程序代码时,整个区域都分配给listbox,而不是一个特定的行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>

【问题讨论】:

  • 你到底想达到什么目的?
  • 我想在一个拆分面板上放置控件的各个部分——顶部和底部。我不想为此使用单选按钮。我决定给他们,因为改变按钮的样式对我来说很困难。

标签: xaml layout winrt-xaml uwp uwp-xaml


【解决方案1】:

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

对于您的场景,您实际上只在ListBox 的Items 集合中添加了一个Grid,然后在这个Grid 中,您又添加了两个ListBoxItemListBoxItems 并没有直接添加到Items集合,但是对于一个Item的Grid控件来说,这里的Grid控件更像是这个Item的root控件。这是您的问题的原因:

整个区域都是分配listbox,而不是listboxItem的特定行放置在表格行中?

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

<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 是干什么用的,如果您对此有任何疑问,可以发表评论。最好描述您想要实现的布局。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-07
    • 1970-01-01
    • 2019-06-11
    • 2014-12-07
    • 2014-02-10
    相关资源
    最近更新 更多