c# - 避免与 datagridview WPF 重叠

标签 c# .net wpf xaml datagridview

我有一个 datagridview,它压倒了其他控件,并将其添加到网格中,但只是不断发生,如果控件不适合窗口,则附加信息将丢失。有没有可能出现滚动条? enter image description here

<UserControl x:Class="Laboratorio.Calibracion"
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
         xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
         mc:Ignorable="d" 
         d:DesignHeight="790" d:DesignWidth="860">
<Grid>
    <GroupBox Header="Calibracion">
        <Grid>
            <Grid.RowDefinitions>
                <RowDefinition Height="Auto"></RowDefinition>
                <RowDefinition Height="Auto"></RowDefinition>
                <RowDefinition Height="Auto"></RowDefinition>
                <RowDefinition Height="Auto"></RowDefinition>
            </Grid.RowDefinitions>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="*"></ColumnDefinition>
                <ColumnDefinition Width="*"></ColumnDefinition>
            </Grid.ColumnDefinitions>
            <GroupBox Grid.Row="0" Grid.Column="0" Header="Equipo">
                <Grid>
                    <Label x:Name="serialLbl" Content="Serial:" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="10,10,0,0"/>
                    <TextBox x:Name="serialTxb" HorizontalAlignment="Left" Height="23" TextWrapping="Wrap" VerticalAlignment="Top" Width="120" Margin="85,10,0,0" LostFocus="SerialTxb_OnLostFocus"/>
                    <TextBox x:Name="descripcionTxb" HorizontalAlignment="Left" Height="23" TextWrapping="Wrap" VerticalAlignment="Top" Width="144" Margin="209,10,0,0" IsEnabled="False"/>
                    <Label x:Name="resolucionLbl" Content="Resolucion:" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="10,41,0,0"/>
                    <TextBox x:Name="resolucionTxb" HorizontalAlignment="Left" Height="23" TextWrapping="Wrap" VerticalAlignment="Top" Width="120" Margin="85,41,0,0"/>
                </Grid>
            </GroupBox>
            <GroupBox Grid.Row="0" Grid.Column="1" Header="Patron">
                <Grid>
                    <Label x:Name="patronLbl" Content="Patron:" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="10,10,0,0"/>
                    <ComboBox x:Name="patronCbb" HorizontalAlignment="Left" VerticalAlignment="Top" Width="120" Margin="92,7,0,0"/>
                    <Label x:Name="patronLbl_Copy" Content="Niv. Referencia:" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="10,41,0,0"/>
                    <TextBox x:Name="nivelRefTxb" HorizontalAlignment="Left" Height="23" TextWrapping="Wrap" VerticalAlignment="Top" Width="120" Margin="106,41,0,0"/>
                    <Label x:Name="patronLbl_Copy1" Content="Fluido:" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="217,10,0,0"/>
                    <ComboBox x:Name="fluidoCbb" HorizontalAlignment="Left" VerticalAlignment="Top" Width="120" Margin="267,10,0,0"/>
                </Grid>
            </GroupBox>
            <GroupBox Grid.Row="1" Grid.Column="0" Header="Condiciones">
                <Grid>
                    <Label x:Name="temperaturaLbl" Content="Temperatura:" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="10,10,0,0"/>
                    <TextBox x:Name="temperaturaTxb" HorizontalAlignment="Left" Height="23" TextWrapping="Wrap" VerticalAlignment="Top" Width="36" Margin="94,10,0,0"/>
                    <Label x:Name="humedadLbl" Content="Humedad:" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="135,10,0,0"/>
                    <TextBox x:Name="humedadTxb" HorizontalAlignment="Left" Height="23" TextWrapping="Wrap" VerticalAlignment="Top" Width="35" Margin="205,10,0,0"/>
                </Grid>
            </GroupBox>
            <GroupBox Grid.Column="0" Grid.Row="2" Header="Comprobacion Inicial">
                <Grid>
                    <Grid.RowDefinitions>
                        <RowDefinition Height="Auto"></RowDefinition>
                        <RowDefinition Height="Auto"></RowDefinition>
                        <RowDefinition Height="Auto"></RowDefinition>
                        <RowDefinition Height="Auto"></RowDefinition>
                    </Grid.RowDefinitions>
                    <Label Grid.Row="0" x:Name="label" Content="Presion:" HorizontalAlignment="Left" VerticalAlignment="Top"/>
                    <TextBox Grid.Row="0" x:Name="presionTxb" HorizontalAlignment="Left" Height="23" TextWrapping="Wrap" VerticalAlignment="Top" Width="56" Margin="57,0,0,0"/>
                    <Label Grid.Row="0" x:Name="label1" Content="Lectura" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="118,0,0,0"/>
                    <TextBox Grid.Row="0" x:Name="lecturaTxb" HorizontalAlignment="Left" Height="23" TextWrapping="Wrap" VerticalAlignment="Top" Width="61" Margin="172,1,0,0"/>
                    <Button Grid.Row="0" x:Name="AgregarBtn" Content="Agregar" HorizontalAlignment="Left" VerticalAlignment="Top" Width="75" Margin="266,0,0,0" Click="AgregarBtn_Click"/>
                    <DataGrid Grid.Row="1" x:Name="compInicialDgv" CanUserAddRows="True" AutoGenerateColumns="False">
                        <DataGrid.Columns>
                            <DataGridTextColumn Header="Presion Patron" IsReadOnly="True" Binding="{Binding Path=PresionPatron}"></DataGridTextColumn>
                            <DataGridTextColumn Header="Lecturas" IsReadOnly="True" Binding="{Binding Path=Lectura}"></DataGridTextColumn>
                            <DataGridTextColumn Header="Error" IsReadOnly="True" Binding="{Binding Path=Error}"></DataGridTextColumn>
                        </DataGrid.Columns>
                    </DataGrid>
                    <RadioButton Grid.Row="2" x:Name="ajusteRb" Content="Ajuste" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="10,10,0,0"/>
                    <RadioButton Grid.Row="2" x:Name="calibracionRb" Content="Calibracion" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="187,10,0,0"/>
                    <TextBox Grid.Row="3" x:Name="observacionTxb" HorizontalAlignment="Left" Height="53" TextWrapping="Wrap" VerticalAlignment="Top" Width="354" Margin="10,54,0,-50"/>
                </Grid>
            </GroupBox>
            <GroupBox Grid.Column="1" Grid.Row="2" Header="Segunda Secuencia">
                <Grid>
                    <Grid.RowDefinitions>
                        <RowDefinition Height="Auto"></RowDefinition>
                        <RowDefinition Height="Auto"></RowDefinition>
                        <RowDefinition Height="Auto"></RowDefinition>
                        <RowDefinition Height="Auto"></RowDefinition>
                    </Grid.RowDefinitions>
                    <Label Grid.Row="0" x:Name="presion2Lbl" Content="Presion:" HorizontalAlignment="Left" VerticalAlignment="Top"/>
                    <TextBox Grid.Row="0" x:Name="presion2Txb" HorizontalAlignment="Left" Height="23" TextWrapping="Wrap" VerticalAlignment="Top" Width="56" Margin="57,0,0,0"/>
                    <Label Grid.Row="0" x:Name="lectura2Lbl" Content="Lectura" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="118,0,0,0"/>
                    <TextBox Grid.Row="0" x:Name="lectura2Txb" HorizontalAlignment="Left" Height="23" TextWrapping="Wrap" VerticalAlignment="Top" Width="61" Margin="172,1,0,0"/>
                    <Button Grid.Row="0" x:Name="agregar2Btn" Content="Agregar" HorizontalAlignment="Left" VerticalAlignment="Top" Width="75" Margin="266,0,0,0" Click="Agregar2Btn_OnClick" />
                    <DataGrid Grid.Row="1" x:Name="segSecDgv">
                        <DataGrid.Columns>
                            <DataGridTextColumn Header="Presion Patron" IsReadOnly="True" Binding="{Binding Path=PresionPatron}"></DataGridTextColumn>
                            <DataGridTextColumn Header="Lecturas" IsReadOnly="True" Binding="{Binding Path=Lectura}"></DataGridTextColumn>
                            <DataGridTextColumn Header="Error" IsReadOnly="True" Binding="{Binding Path=Error}"></DataGridTextColumn>
                        </DataGrid.Columns>
                    </DataGrid>
                    <RadioButton Grid.Row="2" x:Name="calibracion2Rb" Content="Ajuste" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="40,10,0,0"/>
                    <RadioButton Grid.Row="2" x:Name="dadoBajaRb" Content="Calibracion" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="128,14,0,0"/>
                    <TextBox Grid.Row="3" x:Name="observacion2Txb" HorizontalAlignment="Left" Height="54" TextWrapping="Wrap" VerticalAlignment="Top" Width="282" Margin="10,51,0,0"/>
                </Grid>
            </GroupBox>
            <GroupBox Grid.Row="3" Grid.Column="0" Header="Datos de Calibracion" Margin="5,5,5,-211">
                <Grid>
                    <Label Content="Punto:"></Label>
                    <TextBox x:Name="puntoTxb" HorizontalAlignment="Left" Height="23" TextWrapping="Wrap" VerticalAlignment="Top" Width="60" Margin="61,1,0,0"/>
                    <Button x:Name="addPuntoBtn" Content="Agregar Punto" HorizontalAlignment="Left" VerticalAlignment="Top" Width="93" Margin="126,0,0,0" Click="AgregarPunto_OnClick"/>
                    <DataGrid x:Name="calibracionDgv" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="10,42,0,0" Width="377" CanUserAddRows="True">
                        <DataGrid.Columns>
                            <DataGridTextColumn Header="Creciente"></DataGridTextColumn>
                            <DataGridTextColumn Header="Decreciente"></DataGridTextColumn>
                            <DataGridTextColumn Header="Creciente"></DataGridTextColumn>
                            <DataGridTextColumn Header="Decreciente"></DataGridTextColumn>
                            <DataGridTextColumn Header="Creciente"></DataGridTextColumn>
                            <DataGridTextColumn Header="Decreciente"></DataGridTextColumn>
                        </DataGrid.Columns>
                    </DataGrid>
                    <Label x:Name="claselbl" Content="Clase de Exactitud" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="10,72,0,0"/>
                    <TextBox x:Name="claseTxb" HorizontalAlignment="Left" Height="23" TextWrapping="Wrap" VerticalAlignment="Top" Width="120" Margin="126,72,0,0"/>
                    <Label x:Name="condLbl" Content="Cond. Amb. Finales" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="10,103,0,0"/>
                    <TextBox x:Name="condTxb" HorizontalAlignment="Left" Height="23" TextWrapping="Wrap" VerticalAlignment="Top" Width="120" Margin="126,103,0,0"/>
                </Grid>
            </GroupBox>
        </Grid>
    </GroupBox>
</Grid>

最佳答案

据我了解,您有两个问题:

  1. 内部<GroupBox Grid.Row="2" Grid.Column="1" ...>你有重叠的单选按钮DataGrid .这是因为它们都放在相同 Grid 中, 并且单选按钮添加晚于 DataGrid , 所以他们在 DataGrid 的顶部.

我不知道这个GroupBox最后的样子是什么你想要吗,但你可以增加单选按钮的上边距以摆脱重叠的数据网格标题,或者让 DataGridGrid.ZIndex 的帮助下始终位于其他控件的顶部附加属性,像这样:

<GroupBox Grid.Row="2" Grid.Column="1" Header="Segunda Secuencia">
    <Grid>
        <DataGrid Grid.ZIndex="11" x:Name="segSecDgv" Margin="0,57,0,134">
        ...
        </DataGrid>

        <RadioButton Grid.ZIndex="10" x:Name="calibracion2Rb" Content="Ajuste" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="40,74,0,0"/>

        <RadioButton Grid.ZIndex="10" x:Name="dadoBajaRb" Content="Calibracion" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="138,74,0,0"/>

        <TextBox Grid.ZIndex="10" x:Name="observacion2Txb" HorizontalAlignment="Left" Height="54" TextWrapping="Wrap" VerticalAlignment="Top" Width="282" Margin="10,114,0,0"/>
    </Grid>
</GroupBox>
  1. 内部<GroupBox Grid.Row="2" Grid.Column="0" ...>当内容变大时滚动条不出现。有几个与此问题相关的问题,例如 this one .

你可以尝试改变这个

<GroupBox Grid.Row="2" Grid.Column="0" Header="Comprobacion Inicial">
...
</GroupBox>

看起来像这样:

<ScrollViewer Grid.Row="2" Grid.Column="0" VerticalScrollBarVisibility="Auto">
    <GroupBox Header="Comprobacion Inicial">
    ...
    </GroupBox>
</ScrollViewer>

关于c# - 避免与 datagridview WPF 重叠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37449161/

相关文章:

C# - 使用包含双引号的公式设置 Excel 单元格

c# - 完全关闭辅助窗口

wpf - 如何在增加窗口高度的同时增加 WPF 中控件的高度?

c# - 如何在 C# 中读取 PowerPoint 幻灯片中的复杂方程式

c# - 我应该如何将域对象的属性传输到其模型对应项?

c# - 按下按钮时不激活窗口

c# - 名称 <...> 在 namespace clr-namespace <...> 中不存在

.net - 示例 TCP 客户端/服务器应用程序

wpf - ReactiveUI + 可移植类库?

c# - 如何在 visual studio 2013 中设置 "Target Framework"?