TextBox / Grid重叠ComboBox条目

时间:2015-05-07 08:17:54

标签: c# wpf xaml combobox

我正在使用Visual Studio 2013,我在C#中为Windows Phone 8.1应用程序编写了一些代码。现在我在XAML中使用网格布局时遇到了一些问题。

网格中的元素应按代码中的顺序排序/分层,但这对我不起作用。我在网格中有两个网格,第一个网格的组合框列表与另一个网格/文本块重叠。我试图在XAML中重新排列网格,但这也没有解决问题。

overlapping image from the app

在此图像中,打开的组合框列表中应该还有2个项目,但这些项目与其下方的网格重叠。

以下是代码段:

<Grid Margin="0, 50, 0, 0">
    <Grid.RowDefinitions>
        <RowDefinition Height="115"/>
        <RowDefinition Height="80"/>
        <RowDefinition Height="80"/>
        <RowDefinition Height="115"/>
        <RowDefinition Height="*"/>
    </Grid.RowDefinitions>

    <!--Third Row-->
    <Grid Grid.Row="2">
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="2*"/>
            <ColumnDefinition Width="2*"/>
        </Grid.ColumnDefinitions>

        <TextBlock Grid.Column="0"
                   Style="{StaticResource StandardAppHeaderTextBlock}"
                   Text="Woche:"/>
        <ComboBox Name="WochenComboBox"
                  Grid.Column="0"
                  Style="{StaticResource StandardAppComboBox}"/>

        <TextBlock Grid.Column="1"
                   Style="{StaticResource StandardAppHeaderTextBlock}"
                   Text="Ort:"/>
        <TextBox Name="OrtTextBox"
                 Grid.Column="1"
                 Style="{StaticResource StandardAppTextBox}"/>
    </Grid>

    <!--Second Row-->
    <Grid Grid.Row="1">
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="2*"/>
            <ColumnDefinition Width="2*"/>
        </Grid.ColumnDefinitions>

        <TextBlock Grid.Column="0"
                   Style="{StaticResource StandardAppHeaderTextBlock}"
                   Text="Stunde:"/>
        <ComboBox Name="StundenZeitenComboBox"
                  Grid.Column="0"
                  Style="{StaticResource StandardAppComboBox}"
                  ItemsSource="{Binding Einstellung, Converter={StaticResource EinstellungsStundenToComboBoxListConverter}}"
                  DisplayMemberPath="Value"                         
                  SelectionChanged="StundenZeitenComboBox_SelectionChanged"/>

        <TextBlock Grid.Column="1"
                   Style="{StaticResource StandardAppHeaderTextBlock}"
                   Text="Veranstaltungsart:"/>
        <ComboBox Name="VeranstaltungsartComboBox"
                  Grid.Column="1"
                  Style="{StaticResource StandardAppComboBox}"/>
    </Grid>
</Grid>

我应该使用/做什么来消除这种过度重叠。

1 个答案:

答案 0 :(得分:0)

使用堆叠面板。堆栈面板内的项目不会重叠。

<Grid>
      <Grid.RowDefinitions>
        <RowDefinition Height="115" />
        <RowDefinition Height="80" />
        <RowDefinition Height="80" />
        <RowDefinition Height="115" />
        <RowDefinition Height="*" />
      </Grid.RowDefinitions>

      <!--Third Row-->
      <Grid Grid.Row="2">
        <Grid.ColumnDefinitions>
          <ColumnDefinition Width="2*" />
          <ColumnDefinition Width="2*" />
        </Grid.ColumnDefinitions>
        <StackPanel Grid.Column="0">
          <TextBlock Text="Woche:" />
          <ComboBox Name="WochenComboBox" Grid.Column="0" />
        </StackPanel>
        <StackPanel Grid.Column="1">
          <TextBlock Text="Ort:" />
          <TextBox Name="OrtTextBox" Grid.Column="1" />
        </StackPanel>
      </Grid>

      <!--Second Row-->
      <Grid Grid.Row="1">
        <Grid.ColumnDefinitions>
          <ColumnDefinition Width="2*" />
          <ColumnDefinition Width="2*" />
        </Grid.ColumnDefinitions>
        <StackPanel Grid.Column="0">
          <TextBlock Text="Stunde:" />
          <ComboBox Name="StundenZeitenComboBox" Grid.Column="0" DisplayMemberPath="Value" />
        </StackPanel>
        <StackPanel Grid.Column="1">
         <TextBlock Text="Veranstaltungsart:" />
         <ComboBox Name="VeranstaltungsartComboBox" Grid.Column="1" />
       </StackPanel>
     </Grid>
    </Grid>