设置WpfDatagridColumn的宽度

设置WpfDatagridColumn的宽度,wpf,wpfdatagrid,Wpf,Wpfdatagrid,我有这个WpfDatagrid,我需要一个精确宽度的列,我有一个问题 我需要“代码”栏的宽度为100。 我需要的列“描述”自动是占据最多的它可以 我需要列“活动”和“编辑”占据100的宽度 您传递代码的方式与图片中的方式相同,我无法填充整个屏幕。谁能解释我做错了? [img]http://www.imagengratis.org/images/capturadh5jd.jpg[/img] 如果我理解正确,您希望列的宽度始终占据足够的空间来显示该列中的每一项,而不是拉伸和填充整个区域 这是一个问

我有这个WpfDatagrid,我需要一个精确宽度的列,我有一个问题

我需要“代码”栏的宽度为100。 我需要的列“描述”自动是占据最多的它可以 我需要列“活动”和“编辑”占据100的宽度

您传递代码的方式与图片中的方式相同,我无法填充整个屏幕。谁能解释我做错了? [img]http://www.imagengratis.org/images/capturadh5jd.jpg[/img]


如果我理解正确,您希望列的宽度始终占据足够的空间来显示该列中的每一项,而不是拉伸和填充整个区域

这是一个问题,因为默认情况下DataGrid是虚拟化的,所以在滚动到它们之前不会加载不可见的项目

你也可以

  • 将DataGridColumnWidth设置为
    *
    ,以占用所有剩余空间
  • 禁用虚拟化(由于性能原因,不建议使用)
  • 在DataGrid的loaded事件中连接一些内容,该事件评估该列中每个项目的内容,计算它们的渲染宽度,并将列的宽度设置为最大值(由于初始加载时间,也不建议这样做)

    • 我想英语不是你的主要语言,但你想要什么还不清楚。您可以将宽度分配给转换器并计算其中的宽度。

      需要查看数据网格周围的XAML。如何将数据网格放置在窗口上。调整大小的问题可能从调整整个数据网格的大小开始。我使用完整的代码页编辑答案您是否尝试设置Width=“*”而不是Width=“Auto”?是的,我尝试设置Width=“*”而不是结果我想要它
         <Page x:Class="CHGUV.Guia.Farmacoterapeutica.Pages.Maestros.TramoEdad.TramoEdadPage"
          xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
          xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            xmlns:my1="clr-namespace:WpfCCLibrary;assembly=WpfCCLibrary"
      
            Title="Tramos de edad" xmlns:my="clr-namespace:WpfCCLibrary.Control;assembly=WpfCCLibrary" xmlns:mic="http://schemas.microsoft.com/wpf/2008/toolkit" mc:Ignorable="d" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" d:DesignHeight="720" d:DesignWidth="1050" KeyDown="Page_PreviewKeyDown" Loaded="Page_Loaded">
          <Page.Resources>
              <DataTemplate x:Key="ItemTemplate">
                  <StackPanel>
                      <TextBlock Text="{Binding CFG_CAT_FAR_PosologiaTipo_Tipo}"/>
                      <TextBlock Text="{Binding CFG_CAT_FAR_PosologiaTipo_Descripcion}"/>
      
                  </StackPanel>
              </DataTemplate>
          </Page.Resources>
          <Grid>
      <Grid.Background>
                  <LinearGradientBrush EndPoint="0.5,1.5" StartPoint="0,0">
                      <GradientStop Color="#FF87BDEB" Offset="0" />
                      <GradientStop Color="White" Offset="1" />
                  </LinearGradientBrush>
              </Grid.Background>
              <my:WpfLabel Content="Código" HorizontalAlignment="Left" Margin="39,0,0,107" Name="wpfLabel1" Height="21" VerticalAlignment="Bottom" />
                  <my:WpfTextBox Height="23" HorizontalAlignment="Left" Margin="121,0,0,107" Name="TextBoxCodigo" VerticalAlignment="Bottom" Width="134" MaxLength="10" KeyDown="TextBoxCodigo_PreviewKeyDown" />
                  <my:WpfLabel Content="Descripción" Height="22" HorizontalAlignment="Left" Margin="38,0,0,71" Name="wpfLabel2" VerticalAlignment="Bottom" Width="64" />
                  <my:WpfTextBox Height="23" HorizontalAlignment="Left" Margin="121,0,0,71" Name="TextBoxDescripcion" VerticalAlignment="Bottom" Width="581" MaxLength="150" KeyDown="TextBoxDescripcion_PreviewKeyDown" />
                  <my:WpfCheckBox Content="Modificable" Height="16" HorizontalAlignment="Left" Margin="324,0,0,110" Name="CheckBoxModificable" VerticalAlignment="Bottom" Estilo="StlWpfCheckBoxAzul" />
              <my:WpfCheckBox Content="Activo" Height="16" HorizontalAlignment="Left" Margin="428,0,0,110" Name="CheckBoxActivo" VerticalAlignment="Bottom" Estilo="StlWpfCheckBoxAzul" />
              <my:WpfImage Height="24" HorizontalAlignment="Left" Margin="261,0,0,106" Name="ImageCodigoNoNume"  Stretch="Fill" VerticalAlignment="Bottom" Width="24" Source="/CHGUV.Guia.Farmacoterapeutica.Pages;component/Images/Cancel_peq.png" Visibility="Collapsed" >
      
                  </my:WpfImage>
                  <Label Content="Tipo posología" Height="25" HorizontalAlignment="Left" Margin="33,0,0,36" Name="label1" VerticalAlignment="Bottom" />
              <my:WpfComboBox Height="23" HorizontalAlignment="Left" Margin="121,0,0,36" Name="comboBoxPosologia" VerticalAlignment="Bottom" Width="131" ItemsSource="{Binding CFG_CAT_FAR_PosologiaTipo}" Estilo="StlWpfComboBoxBlackAzul" />
              <my:WpfStatusBar  Visibility="Visible" Height="25" VerticalAlignment="Bottom" BorderThickness="0.7"  BorderBrush="#FF688CAF">
                  <!--<my:WpfStatusBar.BorderThickness BorderBrush="White" BorderThickness="15" CornerRadius="15" />-->
      
                  <my:WpfStatusBar.Background>
      
                      <LinearGradientBrush EndPoint="0.0,5.5" StartPoint="0,0">
                          <GradientStop Color="#4682B4" Offset="0" />
                          <!--#FF688CAF-->
                          <GradientStop Color="White" Offset="1" />
      
                      </LinearGradientBrush>
                  </my:WpfStatusBar.Background>
                  <StatusBarItem Name="statusBarItem" HorizontalAlignment="Left" Foreground="White" />
                  <StatusBarItem Name="statusBarNoModificable" HorizontalAlignment="Center" Foreground="White" FontWeight="Bold" />
                  <StatusBarItem Name="statusBarItemEstado" HorizontalAlignment="Right" Foreground="White" />
              </my:WpfStatusBar>
              <my:WpfDataGrid AutoGenerateColumns="False" Estilo="StlWpfDataGridAlternatingRows" Estilo_Header="WpfDataGridColumnHeaderAzul" Margin="12,12,12,147" Name="dataGridTramoEdad" SelectionChanged="dataGridTramoEdad_SelectionChanged" IsReadOnly="True">
                  <my:WpfDataGrid.Columns>
                      <mic:DataGridTextColumn Binding="{Binding CFG_CAT_FAR_TramoEdad_CodTramoEdad}" Header="Código" SortDirection="Ascending" SortMemberPath="CFG_CAT_FAR_TramoEdad" Width="80" MaxWidth="80" MinWidth="80">
                          <mic:DataGridTextColumn.ElementStyle>
                              <Style TargetType="TextBlock">
                                  <Setter Property="TextAlignment" Value="Right" />
      
                              </Style>
                          </mic:DataGridTextColumn.ElementStyle>
                      </mic:DataGridTextColumn>
                      <mic:DataGridTextColumn Binding="{Binding CFG_CAT_FAR_TramoEdad_DescripcionTramo}" Header="Descripción" SortMemberPath="CFG_CAT_FAR_TramoEdad"  Width="Auto">
                          <mic:DataGridTextColumn.ElementStyle>
                              <Style TargetType="TextBlock">
                                  <Setter Property="TextWrapping" Value="Wrap" />
                              </Style>
                          </mic:DataGridTextColumn.ElementStyle>
                      </mic:DataGridTextColumn>
                      <!--<mic:DataGridTextColumn Binding="{Binding CFG_CAT_FAR_TramoEdad_TipoPosol}" Header="Tipo posología" SortDirection="Ascending" SortMemberPath="CFG_CAT_FAR_TramoEdad" Width="15" />-->
                      <mic:DataGridCheckBoxColumn Binding="{Binding CFG_CAT_FAR_TramoEdad_Modificable}" Header="Modificable" SortMemberPath="CFG_CAT_FAR_TramoEdad" Width="80" MaxWidth="100" MinWidth="100" />
                      <mic:DataGridCheckBoxColumn Binding="{Binding CFG_CAT_FAR_TramoEdad_Activo}" Header="Activo" SortMemberPath="CFG_CAT_FAR_TramoEdad" Width="80" MaxWidth="100" MinWidth="100" />
                      <!--<mic:DataGridTextColumn Binding ="{Binding CFG_CAT_FAR_TramoEdad_UsuarioAlta}" Header="Usuario alta" SortDirection="Ascending" SortMemberPath="CFG_CAT_FAR_TramoEdad" Width="125"/>-->
      
                      <!--<mic:DataGridTextColumn Binding ="{Binding CFG_CAT_FAR_TramoEdad_UsuarioModificable}" Header="Usuario modificación" SortDirection="Ascending" SortMemberPath="CFG_CAT_FAR_TramoEdad" Width="125"/>-->
                  </my:WpfDataGrid.Columns>
              </my:WpfDataGrid>
          </Grid>
      
      </Page>