代码之家  ›  专栏  ›  技术社区  ›  Mister 832

如何删除出现在VerticalAlignment=Center上的DataGridTextCell周围的边框?

  •  0
  • Mister 832  · 技术社区  · 7 年前

    我想在 DataGrid ,而文本在行的中心垂直对齐,而不是在顶部。如果我改变 VerticalAlignment 中的属性 DataGridCell 样式,文本正确对齐,但会显示一个框架。设置 BorderThickness 到0不能修复此问题。

    如何去掉框架/边框并在行中间显示文本?

    数据网格 风格

    <Style x:Key="StandardTabelle" TargetType="{x:Type DataGrid}">
        <Setter Property="Margin" Value="5"/>
        <Setter Property="Background" Value="White"/>
        <Setter Property="AlternatingRowBackground" Value="#ebecec"/>
        <Setter Property="FontSize" Value="12" />
        <Setter Property="RowHeight" Value="24"/>
        <Setter Property="ColumnHeaderStyle" Value="{StaticResource StandardSpaltenKopf}" />
        <Setter Property="CanUserAddRows" Value="False"/>
        <Setter Property="CanUserDeleteRows" Value="False"/>
        <Setter Property="CanUserReorderColumns" Value="False"/>
        <Setter Property="CanUserResizeRows" Value="False"/>
        <Setter Property="CanUserResizeColumns" Value="False"/>
        <Setter Property="IsReadOnly" Value="True" />
        <Setter Property="VerticalContentAlignment" Value="Center"/>
        <Setter Property="RowStyle" Value="{StaticResource AusgewählteZeile}"/>
        <Setter Property="VerticalContentAlignment" Value="Center" />
        <Setter Property="VerticalAlignment" Value="Center"/>
    </Style>
    

    所选行的样式

    <Style x:Key="AusgewählteZeile" TargetType="{x:Type DataGridRow}">
        <Style.Triggers>
            <Trigger Property="IsSelected" Value="True">
                <Setter Property="Background" Value="{StaticResource Rot}"/>
            </Trigger>
        </Style.Triggers>
    </Style>
    

    顶端对齐的日期单元格样式

    <Style x:Key="DatumZelle" TargetType="DataGridCell">
        <Setter Property="HorizontalContentAlignment" Value="Right"/>
        <Setter Property="VerticalContentAlignment" Value="Center"/>
        <Setter Property="VerticalAlignment" Value="Center"/>
        <Setter Property="HorizontalAlignment" Value="Stretch"/>
        <Setter Property="BorderThickness" Value="0"/>
        <Style.Triggers>
            <Trigger Property="IsSelected" Value="True">
                <Setter Property="Background" Value="Transparent" />                
            </Trigger>
        </Style.Triggers>
    </Style>
    

    enter image description here

    1 回复  |  直到 7 年前
        1
  •  1
  •   mm8    7 年前

    您可以创建自定义 ControlTemplate :

    <Style x:Key="DatumZelle" TargetType="DataGridCell">
        <Setter Property="HorizontalAlignment" Value="Stretch"/>
        <Setter Property="BorderThickness" Value="0"/>
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type DataGridCell}">
                    <Grid Background="{TemplateBinding Background}">
                        <ContentPresenter VerticalAlignment="Center" HorizontalAlignment="Right" />
                    </Grid>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
        <Style.Triggers>
            <Trigger Property="IsSelected" Value="True">
                <Setter Property="Background" Value="Transparent" />
            </Trigger>
        </Style.Triggers>
    </Style>