【问题标题】:How to remove padding / margin in DevExpress Grid Column header如何删除 DevExpress 网格列标题中的填充/边距
【发布时间】:2017-02-09 17:36:39
【问题描述】:

我有一个 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 元素,但它似乎被完全忽略了。

可能值得注意的是,我使用“Snoop”来尝试查找边距的来源,它揭示了13, 12, 13, 12ContentMargin。如果我改变它,它似乎在 Snoop 中工作。但我不知道这适用于代码中的哪个位置或覆盖它的位置。

【问题讨论】:

    标签: c# wpf xaml devexpress gridcontrol


    【解决方案1】:

    我终于在这里找到了答案……

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

    我的解决方案是覆盖 ColumnHeaderDockPanel 中的 ContentMargin

    &lt;UserControl.Resources&gt;

        <ControlTemplate x:Key="{dxgt:GridColumnHeaderThemeKey ResourceKey=ControlTemplate, IsThemeIndependent=True}" TargetType="{x:Type dxg:GridColumnHeaderBase}">
            <dxg:ColumnHeaderDockPanel x:Name="PART_LayoutPanel" TextElement.Foreground="{DynamicResource {dxgt:GridColumnHeaderThemeKey ResourceKey=HeaderCaptionForeground}}" ContentMargin="2, 12, 2, 12" />
        </ControlTemplate>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-04-09
      • 2016-03-25
      • 1970-01-01
      • 2016-11-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多