【问题标题】:WPF DataGrid in Tab Control Expanding Beyond Window选项卡控件中的 WPF DataGrid 扩展超出窗口
【发布时间】:2020-01-29 17:19:12
【问题描述】:

我有一个 WPF 窗口,它有一个选项卡控件,位于网格的第三行,其中包含一个 DataGrid。 DataGrid 正在填充来自 EF 的数据,当加载数据时,DataGrid 超出了窗口的范围。

我尝试了各种解决方案(例如,将垂直/水平对齐设置为拉伸),但我没有尝试过。下面是直到 DataGrid 的第一个打开标记的一段代码(实际上有三个选项卡,每个选项卡都有一个 DataGrid,但它们都是相同的,只是绑定到不同的数据源)。使用下面的 XAML,宽度绑定正确(即 DataGrid 没有超出窗口的右侧),但 DataGrid 的水平部分确实超出了窗口的底部:

<Grid Margin="5,0,5,0" Background="Blue" >
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="Auto"/>
        </Grid.RowDefinitions>

        <user_controls:Spinner x:Name="spinner" Grid.RowSpan="3" Panel.ZIndex="1000"/>

        <Menu Grid.Row="0" HorizontalAlignment="Left" VerticalAlignment="Top">
            <MenuItem Header="Exit" Click="Exit_Click"/>
            <MenuItem Header="Save" Command="{StaticResource SaveCommand}"/>
        </Menu>
        <GroupBox Grid.Row="1"  Header="Server Type" Margin="610,0,0,0">
            <StackPanel Orientation="Horizontal" Margin="0,5,0,0" HorizontalAlignment="Right">
                <RadioButton x:Name="rbTestServer" GroupName="ServerType" Content="TEST" Foreground="Red" IsChecked="true" Checked="ServerType_Checked"/>
                <RadioButton x:Name="rbProductionServer" GroupName="ServerType" Content="PRODUCTION" Foreground="Green" Margin="10,0,10,0" Checked="ServerType_Checked"/>
            </StackPanel>
        </GroupBox>
        <TabControl x:Name="tcTables" BorderBrush="Red" BorderThickness="5" Grid.Row="2" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" MinHeight="371" Height="auto" MinWidth="782" Width="auto" SelectionChanged="TcTables_SelectionChanged">
            <TabItem x:Name="tiChargeType" Header="Charge Type">
                <DataGrid x:Name="dgChargeType" Background="#FFE5E5E5" AutoGenerateColumns="False" EnableRowVirtualization="True" ItemsSource="{Binding Source={StaticResource vsChargeType}}"  Margin="2,10,10,10" RowDetailsVisibilityMode="VisibleWhenSelected" CellEditEnding="CellEditEnding">

任何帮助/建议将不胜感激。

谢谢

【问题讨论】:

  • 能否请您提供一些屏幕截图以便更好地理解

标签: wpf datagrid wpf-controls


【解决方案1】:

您的网格中有三行:

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

因为第三个设置为自动高度,它告诉它的内容随心所欲地变大。

这是你的问题的原因。

将其更改为:

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

然后,您的选项卡控件以及其中的数据网格的高度将限制为第 0 行和第 1 行之后剩下的任何内容。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-07-11
    • 1970-01-01
    • 2023-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-07
    • 1970-01-01
    相关资源
    最近更新 更多