首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WpfDatagridColumn宽度故障

WpfDatagridColumn宽度故障
EN

Stack Overflow用户
提问于 2011-10-14 19:27:05
回答 2查看 138关注 0票数 0

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

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

你传给我的代码和图片中的一样,我不能填满整个屏幕。谁能给我解释一下我做错了什么?imghttp://www.imagengratis.org/images/capturadh5jd.jpg[/img] http://www.imagengratis.org/images/capturadh5jd.jpg

代码语言:javascript
复制
   <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>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-10-15 03:01:03

我假设英语不是你的主要语言,但不清楚你想要什么。您可以将宽度分配给Converter并计算那里的宽度。

票数 0
EN

Stack Overflow用户

发布于 2011-10-14 21:59:01

如果我没理解错的话,您希望列的宽度总是占用足够的空间来显示该列中的每一项,而不是拉伸和填充整个区域。

这是一个问题,因为默认情况下,数据网格是Virtualized的,所以直到滚动到不可见的项时才会加载它们。

您可以选择

  • 将DataGridColumnWidth设置为等于*,以便占用所有剩余空间
  • 禁用虚拟化(出于性能原因,不建议使用)
  • 挂钩数据网格的已加载事件中的某些内容,该事件评估该列中每一项的内容,计算其呈现宽度,并将该列的宽度设置为等于最大值(由于初始加载时间,也不建议使用)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7766927

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档