c# - 如何更改 DataGrid Mahapp 中选定行的颜色

标签 c# wpf mahapps.metro

我正在尝试更改所选行的颜色,但没有结果。 我已经尝试过这个:

<DataGrid Style="{StaticResource AzureDataGrid}">

但我能看到的唯一变化是第一列由天蓝色着色。 当我选择一行时,它会变成白色,并且我看不到所选行上的值。我是这个 framework 主题 wpf 的新手,文档不准确。有人可以帮助我吗?

最佳答案

现在可以使用 MahApps.Metro 的最新 Alpha 版本(1.1.3.x 或更高版本 1.2.0)更改选定的行画笔

这是主要演示中的示例

<DataGrid x:Name="MetroDataGrid"
            Grid.Column="1"
            Grid.Row="1"
            RenderOptions.ClearTypeHint="Enabled"
            TextOptions.TextFormattingMode="Display"
            HeadersVisibility="All"
            Margin="5"
            SelectionUnit="FullRow"
            ItemsSource="{Binding Path=Albums}"
            AutoGenerateColumns="False">
    <DataGrid.Columns>
        <DataGridCheckBoxColumn ElementStyle="{DynamicResource MetroDataGridCheckBox}"
                                EditingElementStyle="{DynamicResource MetroDataGridCheckBox}"
                                Header="IsSelected"
                                Binding="{Binding RelativeSource={RelativeSource AncestorType=DataGridRow}, Path=IsSelected, Mode=OneWay}" />
        <DataGridTextColumn Header="Title"
                            Binding="{Binding Title}" />
        <DataGridTextColumn Header="Artist"
                            Binding="{Binding Artist.Name}" />
        <DataGridTextColumn Header="Genre"
                            Binding="{Binding Genre.Name}" />
        <controls:DataGridNumericUpDownColumn Header="Price"
                                                Binding="{Binding Price}"
                                                StringFormat="C"
                                                Minimum="0" />
    </DataGrid.Columns>
    <DataGrid.Style>
        <Style BasedOn="{StaticResource MetroDataGrid}"
                TargetType="{x:Type DataGrid}">
            <Setter Property="AlternatingRowBackground"
                    Value="{DynamicResource GrayBrush10}" />
        </Style>
    </DataGrid.Style>
    <DataGrid.RowStyle>
        <Style BasedOn="{StaticResource MetroDataGridRow}"
                TargetType="{x:Type DataGridRow}">
            <Style.Triggers>
                <DataTrigger Binding="{Binding Price, Mode=OneWay, Converter={StaticResource AlbumPriceIsTooMuchConverter}}"
                                Value="True">
                    <Setter Property="Background"
                            Value="#FF8B8B" />
                    <Setter Property="Foreground"
                            Value="Red" />
                </DataTrigger>
                <!-- IsMouseOver -->
                <MultiDataTrigger>
                    <MultiDataTrigger.Conditions>
                        <Condition Binding="{Binding Price, Mode=OneWay, Converter={StaticResource AlbumPriceIsTooMuchConverter}}"
                                    Value="True" />
                        <Condition Binding="{Binding Path=IsMouseOver, RelativeSource={RelativeSource Self}}"
                                    Value="true" />
                    </MultiDataTrigger.Conditions>
                    <Setter Property="Background"
                            Value="#FFBDBD" />
                </MultiDataTrigger>
            </Style.Triggers>
        </Style>
    </DataGrid.RowStyle>
    <DataGrid.RowValidationRules>
        <ValueConverter:AlbumPriceIsReallyTooMuchValidation ValidatesOnTargetUpdated="True"
                                                            ValidationStep="CommittedValue" />
        <ValueConverter:AlbumPriceIsReallyTooMuchValidation ValidatesOnTargetUpdated="True"
                                                            ValidationStep="UpdatedValue" />
    </DataGrid.RowValidationRules>
</DataGrid>

enter image description here

关于c# - 如何更改 DataGrid Mahapp 中选定行的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31288162/

相关文章:

c# - 日期时间转换异常

c# - ASP.NET 中的嵌套中继器

c# - 如何将双数组从 PHP 传递到 C#

Mahapps.Metro 深色主题未在设计器中显示

c# - MahApps.Metro 找不到资源

c# - 如果 EnableOptimization 设置为 true,则 JS 包不会呈现

wpf - 路由事件和附加事件之间的区别以及它们有什么区别?

c# - 暂停/阻止复选框控件的动画

wpf - 文本框文本修剪

c# - 使用 Caliburn 的 TextboxHelper.ButtonCommand 绑定(bind)