WPf无法完全显示我的控件

时间:2012-09-06 01:28:10

标签: c# wpf controls tabcontrol scrollviewer

我有选择性复杂的gui,但它无法显示我的整个控件(在代码中,它不能在底部显示“EMAIL”,“FORWARD”,...)。这段代码有什么问题?是因为“Window”,“TabControl”还是“ScrollViewer”。

提前非常感谢你!

代码如下:

<Window x:Class="WpfApplication1.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    ShowInTaskbar="False" WindowStartupLocation="CenterOwner" 
    SizeToContent="Height" Title="Window1">
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition />
            <RowDefinition />
        </Grid.RowDefinitions>
        <TabControl Name="tabControl1" Grid.Row="0">
            <TabItem Header="A">
                <Grid Margin="5,5,5,5">
                    <StackPanel>
                        <Grid>
                            <TabControl>
                                <TabItem Header="A1">
                                    <Grid Margin="5,5,5,5">
                                        <Grid.RowDefinitions>
                                            <RowDefinition />
                                            <RowDefinition />
                                            <RowDefinition Height="10"  />
                                            <RowDefinition/>
                                        </Grid.RowDefinitions>
                                        <Grid.ColumnDefinitions>
                                            <ColumnDefinition Width="auto" />
                                            <ColumnDefinition Width="auto" />
                                            <ColumnDefinition Width="auto" />
                                        </Grid.ColumnDefinitions>
                                        <StackPanel Name="spG11" Grid.Row="0" Grid.Column="0" Margin="5,5,5,5">
                                            <Grid>
                                                <Grid.RowDefinitions>
                                                    <RowDefinition Height="25"/>
                                                    <RowDefinition Height="25" />
                                                    <RowDefinition Height="25" />
                                                    <RowDefinition Height="25" />
                                                    <RowDefinition Height="25" />
                                                </Grid.RowDefinitions>
                                                <Grid.ColumnDefinitions>
                                                    <ColumnDefinition Width="130"/>
                                                    <ColumnDefinition Width="150"/>
                                                </Grid.ColumnDefinitions>
                                                <TextBlock Grid.Row="0" Grid.Column="0" Text="A11" VerticalAlignment="Center" />
                                                <TextBox Grid.Row="0" Grid.Column="1" HorizontalAlignment="Stretch" VerticalAlignment="Center" />
                                                <TextBlock Grid.Row="1" Grid.Column="0" Text="A12" VerticalAlignment="Center" />
                                                <TextBox Grid.Row="1" Grid.Column="1"  HorizontalAlignment="Stretch" VerticalAlignment="Center" />
                                                <TextBlock Grid.Row="2" Grid.Column="0" Text="A13" VerticalAlignment="Center" />
                                                <TextBox Grid.Row="2" Grid.Column="1"  HorizontalAlignment="Stretch" VerticalAlignment="Center" />
                                                <TextBlock Grid.Row="3" Grid.Column="0" Text="A14" VerticalAlignment="Center" />
                                                <TextBox Grid.Row="3" Grid.Column="1" HorizontalAlignment="Stretch" VerticalAlignment="Center" />
                                                <TextBlock Grid.Row="4" Grid.Column="0" Text="A15" VerticalAlignment="Center" />
                                                <TextBox Grid.Row="4" Grid.Column="1" HorizontalAlignment="Stretch" VerticalAlignment="Center" />
                                            </Grid>
                                        </StackPanel>
                                        <StackPanel Grid.Row="0" Grid.Column="1" Grid.ColumnSpan="2" Margin="5,5,5,5">
                                            <Grid>
                                                <Grid.RowDefinitions>
                                                    <RowDefinition Height="25" />
                                                    <RowDefinition Height="25" />
                                                    <RowDefinition Height="25" />
                                                    <RowDefinition Height="25" />
                                                    <RowDefinition Height="25" />
                                                </Grid.RowDefinitions>
                                                <Grid.ColumnDefinitions>
                                                    <ColumnDefinition Width="130"/>
                                                    <ColumnDefinition Width="150"/>
                                                </Grid.ColumnDefinitions>
                                                <TextBlock Grid.Row="0" Grid.Column="0" Text="A21" VerticalAlignment="Center" />
                                                <TextBox Grid.Row="0" Grid.Column="1"  HorizontalAlignment="Stretch" VerticalAlignment="Center" />
                                                <TextBlock Grid.Row="1" Grid.Column="0" Text="A22" VerticalAlignment="Center" />
                                                <TextBox Grid.Row="1" Grid.Column="1" HorizontalAlignment="Stretch" VerticalAlignment="Center" />
                                                <TextBlock Grid.Row="2" Grid.Column="0" Text="A23" VerticalAlignment="Center" />
                                                <TextBox Grid.Row="2" Grid.Column="1"  HorizontalAlignment="Stretch" VerticalAlignment="Center" />
                                                <TextBlock Grid.Row="3" Grid.Column="0" Text="A24" VerticalAlignment="Center" />
                                                <ComboBox Grid.Row="3" Grid.Column="1"  IsEnabled="False" HorizontalAlignment="Stretch" VerticalAlignment="Center">
                                                    <ComboBoxItem Content="False" IsSelected="True" IsEnabled="False"></ComboBoxItem>
                                                    <ComboBoxItem Content="True"></ComboBoxItem>
                                                </ComboBox>
                                                <TextBlock Grid.Row="4" Grid.Column="0" Text="A25" VerticalAlignment="Center" />
                                                <ComboBox Grid.Row="4" Grid.Column="1" IsEnabled="False" HorizontalAlignment="Stretch" VerticalAlignment="Center">
                                                    <ComboBoxItem Content="False" IsSelected="True" IsEnabled="False"></ComboBoxItem>
                                                    <ComboBoxItem Content="True"></ComboBoxItem>
                                                </ComboBox>
                                            </Grid>
                                        </StackPanel>
                                        <Border BorderThickness="1" BorderBrush="Gray" Grid.Row="1" Grid.Column="0">
                                            <StackPanel >
                                                <StackPanel>
                                                    <Grid>
                                                        <Grid.RowDefinitions>
                                                            <RowDefinition Height="*" />
                                                            <RowDefinition Height="*" />
                                                        </Grid.RowDefinitions>
                                                        <Grid.ColumnDefinitions>
                                                            <ColumnDefinition Width="40"/>
                                                            <ColumnDefinition Width="105"/>
                                                            <ColumnDefinition Width="120"/>
                                                        </Grid.ColumnDefinitions>
                                                        <TextBox Height="25" HorizontalAlignment="Stretch" IsReadOnly="True" Text="X1" TextAlignment="Center" Background="LightBlue" Grid.Row="0" Grid.Column="0"/>
                                                        <TextBox HorizontalAlignment="Stretch" Text="X2" IsReadOnly="True" TextAlignment="Center" Background="LightBlue" Grid.Row="0" Grid.Column="1"/>
                                                        <TextBox Height="25" HorizontalAlignment="Stretch" IsReadOnly="True" Text="X3" TextAlignment="Center" Background="LightBlue" Grid.Row="0" Grid.Column="2"/>
                                                    </Grid>
                                                </StackPanel>
                                                    <ScrollViewer HorizontalAlignment="Left" VerticalScrollBarVisibility="Visible"  Height="150">
                                                    <StackPanel>
                                                        <Grid >
                                                            <Grid.RowDefinitions>
                                                            </Grid.RowDefinitions>
                                                            <Grid.ColumnDefinitions>
                                                                <ColumnDefinition Width="40"/>
                                                                <ColumnDefinition Width="105"/>
                                                                <ColumnDefinition Width="120"/>
                                                            </Grid.ColumnDefinitions>
                                                        </Grid>
                                                    </StackPanel>
                                                </ScrollViewer>
                                            </StackPanel>
                                        </Border>
                                        <StackPanel Grid.Row="1" Grid.Column="1" VerticalAlignment="Center" >
                                            <Button  Margin="2,2,2,2" Content="ADD"  Width="50"/>
                                            <Button  Margin="2,2,2,2" Content="DEL"  Width="50" />
                                        </StackPanel>

                                        <Border BorderThickness="1" BorderBrush="Gray" Grid.Row="1" Grid.Column="2">
                                            <StackPanel HorizontalAlignment="Left">
                                                <StackPanel>
                                                    <Grid>
                                                        <Grid.RowDefinitions>
                                                            <RowDefinition Height="*" />
                                                            <RowDefinition Height="*" />
                                                        </Grid.RowDefinitions>
                                                        <Grid.ColumnDefinitions>
                                                            <ColumnDefinition Width="50"/>
                                                            <ColumnDefinition Width="50"/>
                                                            <ColumnDefinition Width="50"/>
                                                            <ColumnDefinition Width="50"/>
                                                        </Grid.ColumnDefinitions>
                                                        <TextBox Height="25" HorizontalAlignment="Stretch" IsReadOnly="True" Text="Y1" TextAlignment="Center" Background="LightBlue" Name="VaAmplitude" Grid.Row="0" Grid.Column="0"/>
                                                        <TextBox HorizontalAlignment="Stretch" Text="Y2" IsReadOnly="True" TextAlignment="Center" Background="LightBlue" Name="VaPhase" Grid.Row="0" Grid.Column="1"/>
                                                        <TextBox Height="25" HorizontalAlignment="Stretch" IsReadOnly="True" Text="Y3" TextAlignment="Center" Background="LightBlue" Name="VbAmplitude" Grid.Row="0" Grid.Column="2"/>
                                                        <TextBox HorizontalAlignment="Stretch" Text="Y4" IsReadOnly="True" TextAlignment="Center" Background="LightBlue" Name="VbPhase" Grid.Row="0" Grid.Column="3"/>
                                                    </Grid>
                                                </StackPanel>
                                                <ScrollViewer HorizontalAlignment="Left" VerticalScrollBarVisibility="Visible" Height="150">
                                                    <Grid >
                                                        <Grid.RowDefinitions>
                                                        </Grid.RowDefinitions>
                                                        <Grid.ColumnDefinitions>
                                                            <ColumnDefinition Width="50"/>
                                                            <ColumnDefinition Width="50"/>
                                                            <ColumnDefinition Width="50"/>
                                                            <ColumnDefinition Width="50"/>
                                                        </Grid.ColumnDefinitions>
                                                    </Grid>
                                                </ScrollViewer>
                                            </StackPanel>
                                        </Border>

                                        <StackPanel Grid.Row="3" Grid.Column="0" Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center">
                                            <CheckBox Content="SELECT" IsChecked="True"/>
                                            <TextBlock Width="12" />
                                            <CheckBox Content="FORWARD" IsChecked="False"/>
                                        </StackPanel>
                                        <StackPanel Grid.Row="3" Grid.Column="2" Orientation="Horizontal" HorizontalAlignment="Center">
                                            <Button Content="LIST" />
                                        </StackPanel>
                                    </Grid>
                                </TabItem>

                            </TabControl>
                        </Grid>
                    </StackPanel>
                </Grid>
            </TabItem>
            <!--  -->
            <TabItem Header="B">
                <Grid Margin="5,5,5,5">
                    <StackPanel>
                        <Grid>
                            <Grid.RowDefinitions>
                                <RowDefinition />
                                <RowDefinition />
                            </Grid.RowDefinitions>
                            <TabControl Grid.Row="0">
                                <TabItem Header="B1">
                                    <Grid Margin="5,5,5,5">
                                        <Grid.RowDefinitions>
                                            <RowDefinition />
                                            <RowDefinition />
                                            <RowDefinition Height="10"  />
                                            <RowDefinition/>
                                        </Grid.RowDefinitions>
                                        <Grid.ColumnDefinitions>
                                            <ColumnDefinition Width="auto" />
                                            <ColumnDefinition Width="auto" />
                                            <ColumnDefinition Width="auto" />
                                            <ColumnDefinition Width="auto" />
                                        </Grid.ColumnDefinitions>
                                        <StackPanel Name="spU11" Grid.Row="0" Grid.Column="0" Margin="5,5,5,5">
                                            <Grid>
                                                <Grid.RowDefinitions>
                                                    <RowDefinition Height="25"/>
                                                    <RowDefinition Height="25" />
                                                    <RowDefinition Height="25" />
                                                    <RowDefinition Height="25" />
                                                    <RowDefinition Height="25" />
                                                    <RowDefinition Height="25" />
                                                </Grid.RowDefinitions>
                                                <Grid.ColumnDefinitions>
                                                    <ColumnDefinition Width="130"/>
                                                    <ColumnDefinition Width="150"/>
                                                </Grid.ColumnDefinitions>
                                                <TextBlock Grid.Row="0" Grid.Column="0" Text="B11" VerticalAlignment="Center" />
                                                <TextBox Grid.Row="0" Grid.Column="1" HorizontalAlignment="Stretch" VerticalAlignment="Center" />
                                                <TextBlock Grid.Row="1" Grid.Column="0" Text="B12" VerticalAlignment="Center" />
                                                <TextBox Grid.Row="1" Grid.Column="1" HorizontalAlignment="Stretch" VerticalAlignment="Center" />
                                                <TextBlock Grid.Row="2" Grid.Column="0" Text="B13" VerticalAlignment="Center" />
                                                <TextBox Grid.Row="2" Grid.Column="1"  HorizontalAlignment="Stretch" VerticalAlignment="Center" />
                                                <TextBlock Grid.Row="3" Grid.Column="0" Text="B14" VerticalAlignment="Center" />
                                                <TextBox Grid.Row="3" Grid.Column="1" HorizontalAlignment="Stretch" VerticalAlignment="Center" />
                                                <TextBlock Grid.Row="4" Grid.Column="0" Text="B15" VerticalAlignment="Center" />
                                                <TextBox Grid.Row="4" Grid.Column="1" HorizontalAlignment="Stretch" VerticalAlignment="Center" />
                                                <TextBlock Grid.Row="5" Grid.Column="0" Text="B16" VerticalAlignment="Center" />
                                                <TextBox Grid.Row="5" Grid.Column="1" HorizontalAlignment="Stretch" VerticalAlignment="Center" />
                                            </Grid>
                                        </StackPanel>
                                        <StackPanel Grid.Row="0" Grid.Column="1" Grid.ColumnSpan="2" Margin="5,5,5,5">
                                            <Grid>
                                                <Grid.RowDefinitions>
                                                    <RowDefinition Height="25" />
                                                    <RowDefinition Height="25" />
                                                    <RowDefinition Height="25" />
                                                    <RowDefinition Height="25" />
                                                    <RowDefinition Height="25" />
                                                    <RowDefinition Height="25" />
                                                </Grid.RowDefinitions>
                                                <Grid.ColumnDefinitions>
                                                    <ColumnDefinition Width="130"/>
                                                    <ColumnDefinition Width="150"/>
                                                </Grid.ColumnDefinitions>
                                                <TextBlock Grid.Row="0" Grid.Column="0" Text="B21" VerticalAlignment="Center" />
                                                <TextBox Grid.Row="0" Grid.Column="1" HorizontalAlignment="Stretch" VerticalAlignment="Center" />
                                                <TextBlock Grid.Row="1" Grid.Column="0" Text="B22" VerticalAlignment="Center" />
                                                <TextBox Grid.Row="1" Grid.Column="1" HorizontalAlignment="Stretch" VerticalAlignment="Center" />
                                                <TextBlock Grid.Row="2" Grid.Column="0" Text="B23" VerticalAlignment="Center" />
                                                <TextBox Grid.Row="2" Grid.Column="1"  HorizontalAlignment="Stretch" VerticalAlignment="Center" />
                                                <TextBlock Grid.Row="4" Grid.Column="0" Text="B24" VerticalAlignment="Center" />
                                                <TextBox Grid.Row="4" Grid.Column="1" HorizontalAlignment="Stretch" VerticalAlignment="Center" />
                                                <TextBlock Grid.Row="5" Grid.Column="0" Text="B25" VerticalAlignment="Center" />
                                                <TextBox Grid.Row="5" Grid.Column="1" HorizontalAlignment="Stretch" VerticalAlignment="Center" />
                                            </Grid>
                                        </StackPanel>
                                        <Border BorderThickness="1" BorderBrush="Gray" Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="2">
                                            <StackPanel>
                                                <StackPanel>
                                                    <Grid>
                                                        <Grid.RowDefinitions>
                                                            <RowDefinition Height="*" />
                                                            <RowDefinition Height="*" />
                                                        </Grid.RowDefinitions>
                                                        <Grid.ColumnDefinitions>
                                                            <ColumnDefinition Width="60"/>
                                                            <ColumnDefinition Width="172"/>
                                                            <ColumnDefinition Width="170"/>
                                                        </Grid.ColumnDefinitions>
                                                        <TextBox Height="25" HorizontalAlignment="Stretch" IsReadOnly="True" Text="Q1" TextAlignment="Center" Background="LightBlue" Grid.Row="0" Grid.Column="0"/>
                                                        <TextBox HorizontalAlignment="Stretch" Text="Q2" IsReadOnly="True" TextAlignment="Center" Background="LightBlue" Grid.Row="0" Grid.Column="1"/>
                                                        <TextBox Height="25" HorizontalAlignment="Stretch" IsReadOnly="True" Text="Q3" TextAlignment="Center" Background="LightBlue" Grid.Row="0" Grid.Column="2"/>
                                                    </Grid>
                                                </StackPanel>
                                                <ScrollViewer HorizontalAlignment="Left" VerticalScrollBarVisibility="Visible" Height="150">
                                                    <Grid>
                                                        <Grid.RowDefinitions>
                                                        </Grid.RowDefinitions>
                                                        <Grid.ColumnDefinitions>
                                                            <ColumnDefinition Width="60"/>
                                                            <ColumnDefinition Width="172"/>
                                                            <ColumnDefinition Width="170"/>
                                                        </Grid.ColumnDefinitions>
                                                    </Grid>
                                                </ScrollViewer>
                                            </StackPanel>
                                        </Border>
                                        <StackPanel Grid.Row="1" Grid.Column="2" VerticalAlignment="Center" >
                                            <Button Margin="2,2,2,2" Content="ADD"  Width="60"/>
                                            <Button  Margin="2,2,2,2" Content="DEL"  Width="60" />
                                        </StackPanel>
                                        <StackPanel Grid.Row="3" Grid.ColumnSpan="3">
                                            <CheckBox Content="FORWARD" IsChecked="True" />
                                        </StackPanel>

                                    </Grid>
                                </TabItem>

                            </TabControl>

                            <StackPanel Grid.Row="1" Orientation="Horizontal" HorizontalAlignment="Center">
                                <StackPanel Grid.Row="3" Grid.Column="0" Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center">
                                    <TextBlock Text="EMAIL" />
                                    <TextBox Width="80"/>
                                </StackPanel>
                                <TextBlock Width="30" />
                                <StackPanel Grid.Row="3" Grid.Column="0" Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center">
                                    <TextBlock Text="PAT NO" />
                                    <TextBox Width="80"/>
                                </StackPanel>
                            </StackPanel>
                        </Grid>
                    </StackPanel>
                </Grid>
            </TabItem>
        </TabControl>
        <StackPanel Grid.Row="1" HorizontalAlignment="Stretch" Name="testItemLabelValue" Visibility="Hidden">
            <TextBox Margin="0,1,0,1" HorizontalAlignment="Stretch" />
            <StackPanel x:Name="labelling"></StackPanel>
        </StackPanel>
        <StackPanel Grid.Row="1" Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center" Height="50">
            <Button Content="YES" Width="70" Height="25" HorizontalAlignment="Right" Margin="0,0,20,0" />
            <TextBox Margin="0,1,0,1" HorizontalAlignment="Stretch" Visibility="Hidden" />
            <Button Content="CANCEAL" Width="70" Height="25" HorizontalAlignment="Left"/>
        </StackPanel>
    </Grid>
</Window>

1 个答案:

答案 0 :(得分:1)

您只需指定顶部网格的高度:

<Grid.RowDefinitions>
    <RowDefinition Height="Auto" />
    <RowDefinition Height="Auto" />
</Grid.RowDefinitions>

我正在尝试你的用户界面,现在它可以运行了。

P.S。虽然这会使您的用户界面正常运行,但我建议您阅读User Controls并尝试通过使用它们来划分整个用户界面的复杂性(分而治之)。