繁体   English   中英

如何在DevExpress GridControl中填充最后一列的宽度?

[英]How to fill width of last column at DevExpress GridControl?

我有DevExpress GridControl,它有7列。 我试图将最后一列扩展到右边,但没有任何反应。 相反,列延伸一段距离,并且在网格的右边缘,有一个没有名称的空列,无法拉伸。

所以,我尝试谷歌它:我觉得像一些答案这个 ,但它并没有为我工作。

这里有一些XAML的和平,我删除所有绑定。

<dxg:GridControl Grid.Row="0"
                x:Name="dgGrid"
                VerticalAlignment="Stretch"
                HorizontalAlignment="Stretch"
                dx:ThemeManager.ThemeName="Seven"

                ScrollViewer.CanContentScroll="True"
                ScrollViewer.HorizontalScrollBarVisibility="Auto"
                ScrollViewer.VerticalScrollBarVisibility="Auto"
                >

    <dxg:GridControl.View>
        <!--region #RowCellMenuCustomization-->
        <dxg:TableView x:Name="view" AutoWidth="True" NavigationStyle="Cell">
            <dxg:TableView.RowCellMenuCustomizations>
                <dxb:BarButtonItem Content="Link"
                                ItemClick="CellDataItem_Link_ItemClick"
                                ></dxb:BarButtonItem>

                <dxb:BarButtonItem Content="UnLink"
                                ItemClick="CellDataItem_UnLink_ItemClick"
                                ></dxb:BarButtonItem>
            </dxg:TableView.RowCellMenuCustomizations>
        </dxg:TableView>
        <!--endregion #RowCellMenuCustomization-->
    </dxg:GridControl.View>

    <dxg:GridControl.Columns>

        <dxg:GridColumn Header="Column0"
                    AllowEditing="False"
                    HorizontalHeaderContentAlignment="Stretch"
                    FixedWidth="True"
                    AllowResizing="True"
                    MinWidth="80"
                    ></dxg:GridColumn>

        <dxg:GridColumn Header="Column1"
                    AllowEditing="False"
                    HorizontalHeaderContentAlignment="Stretch"
                    FixedWidth="True"
                    AllowResizing="True"
                    MinWidth="80"
                    ></dxg:GridColumn>

        <dxg:GridColumn Header="Column2"
                    AllowEditing="False"
                    HorizontalHeaderContentAlignment="Stretch"
                    AllowResizing="True"
                    FixedWidth="True"
                    Visible="False"
                    MinWidth="80"
                    ></dxg:GridColumn>

        <dxg:GridColumn Header="Column3"
                    HorizontalHeaderContentAlignment="Center"
                    AllowEditing="False"
                    Width="35"
                    FixedWidth="True"
                    AllowResizing="False"
                    ></dxg:GridColumn>

        <dxg:GridColumn Header="Column4"
                    HorizontalHeaderContentAlignment="Center"
                    FixedWidth="True"
                    AllowEditing="False"
                    AllowResizing="False"
                    Width="35"
                    ></dxg:GridColumn>

        <dxg:GridColumn Header="Column5"
                    HorizontalHeaderContentAlignment="Stretch"
                    FixedWidth="True"
                    AllowEditing="False"
                    AllowResizing="True"
                    MinWidth="170"
                    ></dxg:GridColumn>

        <dxg:GridColumn Header="Column6"
                    HorizontalHeaderContentAlignment="Stretch"
                    AllowEditing="False"
                    AllowResizing="True"
                    Width="*"
                    Fixed="None"
                    BestFitMode="Default"
                    BestFitArea="All"
                    MinWidth="130"
                    FixedWidth="False"
                    />

    </dxg:GridControl.Columns>
</dxg:GridControl>

这是我的GridControl的例子

同时,我使用BestFit方法,它在GridControl加载时有效:

private void Grid_Loaded(object sender, RoutedEventArgs e)
{
    ((TableView)this.view).BestFitArea = BestFitArea.All;
    var visibleColumns = ((TableView)this.view).VisibleColumns;
    ((TableView)this.view).BestFitColumns();
}

请问,您可以帮我将最后一列(Column6)的宽度放到网格的末尾吗?

TableView.AutoWidth属性是您正在寻找的。 您已经设置了它,但Column6存在错误。 列的Width不能设置为"*" 所以,我使用了你的代码,删除了Width="*" ,结果如下:

结果

实际上,如果您使用的是16.1或更新版本 ,则将“*”设置为列宽应该可以正常工作。 我已根据您的代码和代码段创建了一个测试项目: 在此输入图像描述

在GridColumn.Width属性中使用'*'可启用比例列大小调整功能,但在旧版本中不可用。 要了解有关此功能的更多信息,请参阅列布局和宽度

如果您使用的是旧版本,请启用“自动宽度”选项。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM