如何以数据网格的样式添加单元格样式?

阿尔瓦罗·加西亚(Alvaro Garcia)

我有一本带有数据网格样式的字典,我有这个:

<Style TargetType="{x:Type DataGrid}" x:Key="DataGridDefault">
    <Setter Property="HorizontalAlignment" Value="Stretch"/>
    <Setter Property="VerticalAlignment" Value="Stretch"/>
    <Setter Property="AutoGenerateColumns" Value="False"/>
    <Setter Property="IsReadOnly" Value="True"/>
    <Setter Property="MinHeight" Value="150"/>
    <Setter Property="HorizontalScrollBarVisibility" Value="Auto"/>
    <Setter Property="VerticalScrollBarVisibility" Value="Auto"/>

    <Style.Resources>
        <SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="Transparent"/>
        <SolidColorBrush x:Key="{x:Static SystemColors.HighlightTextBrushKey}" Color="Black"/>
        <SolidColorBrush x:Key="{x:Static SystemColors.InactiveSelectionHighlightBrushKey}" Color="Transparent"/>
        <SolidColorBrush x:Key="{x:Static SystemColors.InactiveSelectionHighlightTextBrushKey}" Color="Black"/>
    </Style.Resources>
</Style>

我想将行的样式包括在datagrid的样式中。我想要的行样式是:

<DataGrid.RowStyle>
    <Style TargetType="DataGridRow">
        <Style.Triggers>
            <MultiDataTrigger>
                <MultiDataTrigger.Conditions>
                    <Condition Binding="{Binding IsSelected, RelativeSource={RelativeSource Self}}" Value="true" />
                </MultiDataTrigger.Conditions>
                <MultiDataTrigger.Setters>
                    <Setter Property="Background" Value="{x:Static SystemColors.HighlightBrush}"/>
                </MultiDataTrigger.Setters>
            </MultiDataTrigger>
        </Style.Triggers>
    </Style>
</DataGrid.RowStyle>

我试图以这种方式添加它:

<Style TargetType="{x:Type DataGrid}" x:Key="DataGridDefault">
    <Setter Property="HorizontalAlignment" Value="Stretch"/>
    <Setter Property="VerticalAlignment" Value="Stretch"/>
    <Setter Property="AutoGenerateColumns" Value="False"/>
    <Setter Property="IsReadOnly" Value="True"/>
    <Setter Property="MinHeight" Value="150"/>
    <Setter Property="HorizontalScrollBarVisibility" Value="Auto"/>
    <Setter Property="VerticalScrollBarVisibility" Value="Auto"/>

    <DataGrid.RowStyle>
        <Style TargetType="DataGridRow">
            <Style.Triggers>
                <MultiDataTrigger>
                    <MultiDataTrigger.Conditions>
                        <Condition Binding="{Binding IsSelected, RelativeSource={RelativeSource Self}}" Value="true" />
                    </MultiDataTrigger.Conditions>
                    <MultiDataTrigger.Setters>
                        <Setter Property="Background" Value="{x:Static SystemColors.HighlightBrush}"/>
                    </MultiDataTrigger.Setters>
                </MultiDataTrigger>
            </Style.Triggers>
        </Style>
    </DataGrid.RowStyle>
    
    <Style.Resources>
        <SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="Transparent"/>
        <SolidColorBrush x:Key="{x:Static SystemColors.HighlightTextBrushKey}" Color="Black"/>
        <SolidColorBrush x:Key="{x:Static SystemColors.InactiveSelectionHighlightBrushKey}" Color="Transparent"/>
        <SolidColorBrush x:Key="{x:Static SystemColors.InactiveSelectionHighlightTextBrushKey}" Color="Black"/>
    </Style.Resources>
</Style>

但这是不可能的。其想法是为数据网格设置样式,该样式包含行的样式,以避免必须在应用程序的每个数据网格中设置两种样式,而只需设置数据网格的样式即可设置两种样式。但是我不知道是否可能。

那个家伙

添加SetterRowStyle性能而添加的风格Value

<Style TargetType="{x:Type DataGrid}" x:Key="DataGridDefault">
   <Setter Property="HorizontalAlignment" Value="Stretch" />
   <Setter Property="VerticalAlignment" Value="Stretch" />
   <Setter Property="AutoGenerateColumns" Value="False" />
   <Setter Property="IsReadOnly" Value="True" />
   <Setter Property="MinHeight" Value="150" />
   <Setter Property="HorizontalScrollBarVisibility" Value="Auto" />
   <Setter Property="VerticalScrollBarVisibility" Value="Auto" />
   <Setter Property="RowStyle">
      <Setter.Value>
         <Style TargetType="DataGridRow">
            <Style.Triggers>
               <MultiDataTrigger>
                  <MultiDataTrigger.Conditions>
                     <Condition Binding="{Binding IsSelected, RelativeSource={RelativeSource Self}}" Value="true" />
                  </MultiDataTrigger.Conditions>
                  <MultiDataTrigger.Setters>
                     <Setter Property="Background" Value="{x:Static SystemColors.HighlightBrush}" />
                  </MultiDataTrigger.Setters>
               </MultiDataTrigger>
            </Style.Triggers>
         </Style>
      </Setter.Value>
   </Setter>
   <Style.Resources>
      <SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="Transparent" />
      <SolidColorBrush x:Key="{x:Static SystemColors.HighlightTextBrushKey}" Color="Black" />
      <SolidColorBrush x:Key="{x:Static SystemColors.InactiveSelectionHighlightBrushKey}" Color="Transparent" />
      <SolidColorBrush x:Key="{x:Static SystemColors.InactiveSelectionHighlightTextBrushKey}" Color="Black" />
   </Style.Resources>
</Style>

或者,如果您希望两种样式都分开,则可以这样做。

<Style TargetType="DataGridRow" x:Key="DataGridRowDefault">
   <Style.Triggers>
      <MultiDataTrigger>
         <MultiDataTrigger.Conditions>
            <Condition Binding="{Binding IsSelected, RelativeSource={RelativeSource Self}}" Value="true" />
         </MultiDataTrigger.Conditions>
         <MultiDataTrigger.Setters>
            <Setter Property="Background" Value="{x:Static SystemColors.HighlightBrush}" />
         </MultiDataTrigger.Setters>
      </MultiDataTrigger>
   </Style.Triggers>
</Style>

<Style TargetType="{x:Type DataGrid}" x:Key="DataGridDefault">
   <Setter Property="HorizontalAlignment" Value="Stretch" />
   <Setter Property="VerticalAlignment" Value="Stretch" />
   <Setter Property="AutoGenerateColumns" Value="False" />
   <Setter Property="IsReadOnly" Value="True" />
   <Setter Property="MinHeight" Value="150" />
   <Setter Property="HorizontalScrollBarVisibility" Value="Auto" />
   <Setter Property="VerticalScrollBarVisibility" Value="Auto" />
   <Setter Property="RowStyle" Value="{StaticResource DataGridRowDefault}"/>
   <Style.Resources>
      <SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="Transparent" />
      <SolidColorBrush x:Key="{x:Static SystemColors.HighlightTextBrushKey}" Color="Black" />
      <SolidColorBrush x:Key="{x:Static SystemColors.InactiveSelectionHighlightBrushKey}" Color="Transparent" />
      <SolidColorBrush x:Key="{x:Static SystemColors.InactiveSelectionHighlightTextBrushKey}" Color="Black" />
   </Style.Resources>
</Style>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Kendo网格更改样式单元格数据

来自分类Dev

如何设置数据表列中的单元格样式?

来自分类Dev

如何基于同一触发器为数据网格的多个单元格设置样式?

来自分类Dev

如何在WPF中基于条件运算符更改数据网格单元格的样式

来自分类Dev

数据网格中一列中的 WPF 样式单元格

来自分类Dev

通过ClientTemplate在Kendo网格中样式化单元格

来自分类Dev

单元格样式的用法

来自分类Dev

单元格样式的用法

来自分类Dev

JavaFX 单元格样式

来自分类Dev

如何在添加行中添加单元格样式并更改<td>的属性

来自分类Dev

计算单元格中的div并添加样式

来自分类Dev

如何将无效单元格的红色背景设置为整体数据网格样式的一部分

来自分类Dev

如何根据单元格值设置不同的表格数据样式?

来自分类Dev

EPPlus:如何设置合并单元格的样式?

来自分类Dev

如何在JupyterLab中更改单元格的样式/宽度?

来自分类Dev

如何根据列名和单元格值设置样式?

来自分类Dev

如何在JupyterLab中更改单元格的样式/宽度?

来自分类Dev

如何调整表格单元格边框的样式?

来自分类Dev

PHPExcel如何应用样式并为动态生成的单元格设置单元格宽度和单元格高度

来自分类Dev

更改解析PFQueryTableViewController单元格的样式

来自分类Dev

Telerik RadGridView样式列单元格

来自分类Dev

角度UI网格过滤器标头单元格样式?

来自分类Dev

如何根据单元格值有条件地对ReactJs物料表单元格进行样式设置?

来自分类Dev

在单元格编辑触发的异步方法完成之前和之后,如何更改Ag Grid中的单元格样式?

来自分类常见问题

向ag-grid中的特定标题单元格添加样式

来自分类Dev

向ag-grid中的特定标题单元格添加样式

来自分类Dev

添加表格,tr和单元格不同的特定边框样式和间距

来自分类Dev

如何在TableView的行中应用不同的单元格样式

来自分类Dev

每次导航时如何管理单元格颜色样式

Related 相关文章

  1. 1

    Kendo网格更改样式单元格数据

  2. 2

    如何设置数据表列中的单元格样式?

  3. 3

    如何基于同一触发器为数据网格的多个单元格设置样式?

  4. 4

    如何在WPF中基于条件运算符更改数据网格单元格的样式

  5. 5

    数据网格中一列中的 WPF 样式单元格

  6. 6

    通过ClientTemplate在Kendo网格中样式化单元格

  7. 7

    单元格样式的用法

  8. 8

    单元格样式的用法

  9. 9

    JavaFX 单元格样式

  10. 10

    如何在添加行中添加单元格样式并更改<td>的属性

  11. 11

    计算单元格中的div并添加样式

  12. 12

    如何将无效单元格的红色背景设置为整体数据网格样式的一部分

  13. 13

    如何根据单元格值设置不同的表格数据样式?

  14. 14

    EPPlus:如何设置合并单元格的样式?

  15. 15

    如何在JupyterLab中更改单元格的样式/宽度?

  16. 16

    如何根据列名和单元格值设置样式?

  17. 17

    如何在JupyterLab中更改单元格的样式/宽度?

  18. 18

    如何调整表格单元格边框的样式?

  19. 19

    PHPExcel如何应用样式并为动态生成的单元格设置单元格宽度和单元格高度

  20. 20

    更改解析PFQueryTableViewController单元格的样式

  21. 21

    Telerik RadGridView样式列单元格

  22. 22

    角度UI网格过滤器标头单元格样式?

  23. 23

    如何根据单元格值有条件地对ReactJs物料表单元格进行样式设置?

  24. 24

    在单元格编辑触发的异步方法完成之前和之后,如何更改Ag Grid中的单元格样式?

  25. 25

    向ag-grid中的特定标题单元格添加样式

  26. 26

    向ag-grid中的特定标题单元格添加样式

  27. 27

    添加表格,tr和单元格不同的特定边框样式和间距

  28. 28

    如何在TableView的行中应用不同的单元格样式

  29. 29

    每次导航时如何管理单元格颜色样式

热门标签

归档