如何删除DevExpress网格列标题中的填充/边距

时间:2017-02-08 16:20:23

标签: c# wpf xaml devexpress gridcontrol

我有一个DevExpress网格控件,但是,标题中的空间是有限的,因此我的所有文本都不适合。标题中有一个相当大的填充(或者可能是边距),如果我可以减少则解决我的问题。但我无法弄清楚填充的位置。

该列定义为......

        <dxg:GridColumn
            CellStyle="{StaticResource DefaultCellStyle}"
            CellTemplate="{StaticResource TestCellValueTemplate}"
            FieldName="Test2.DisplayValue"
            Header="{Binding Columns.Test2Column}"
            HeaderTemplate="{StaticResource TestColumnHeaderTemplate}"
            HorizontalHeaderContentAlignment="Center"
            Visible="{Binding Columns.Test2Column.IsVisible}"
            VisibleIndex="2" />

HeaderTemplate

    <DataTemplate 
        x:Key="TestColumnHeaderTemplate" 
        DataType="vsvm:FvcSessionGridTestColumn">
        <StackPanel
            HorizontalAlignment="Stretch"
            VerticalAlignment="Stretch"
            Orientation="Vertical">
            <TextBlock
                HorizontalAlignment="Stretch"
                FontWeight="Bold"
                Text="{Binding Header}" />
            <TextBlock
                HorizontalAlignment="Center"
                FontSize="11"
                Text="{Binding Time, Mode=OneWay, StringFormat=HH:mm:ss}" />
        </StackPanel>
    </DataTemplate>

在任何地方都没有提到边距或填充。但是虽然我可以控制StackPanel的宽度,但是如果我使它大于可用空间,它就会消失在单元格的填充后面。

我尝试过添加

ColumnHeaderContentStyle="{StaticResource DefaultHeaderStyle}"

(还有)

    <Style x:Key="DefaultHeaderStyle"
           TargetType="{x:Type dxg:HeaderContentControl}">
        <Setter Property="Margin" Value="0, 0, 0, 0" />
        <Setter Property="Padding" Value="0, 0, 0, 0" />
        <Setter Property="Background" Value="Red" />
    </Style>

GridColumn元素但似乎完全被忽略了。

enter image description here

值得注意的是,我使用“Snoop”试图找到边距的来源,并显示ContentMargin的{​​{1}}。如果我改变它,它似乎在Snoop内工作。但我不知道代码在哪里适用或在哪里覆盖它。

enter image description here

1 个答案:

答案 0 :(得分:0)

我终于找到了答案......

https://www.devexpress.com/Support/Center/Question/Details/T241104

我的解决方案是覆盖ColumnHeaderDockPanel中的class ProductsFilter(django_filters.FilterSet): subcategory= django_filters.ChoiceFilter(lookup_expr='iexact', choices=[], required=False) def __init__(self, category, *args, **kwargs): super(ProductsFilter, self).__init__(*args, **kwargs) choices = self.fields['subcategory'].extra['choices'] choices += [ (subcat.name, subcat.name) for subcat in SubCategory.objects.filter(category=category) ] class Meta: model = Products

ContentMargin

<UserControl.Resources>