繁体   English   中英

如何在DataGrid Mahapp中更改选定的行颜色

[英]How to change selected row color in DataGrid Mahapp

我正在尝试更改所选行的颜色,但无法实现。 我已经尝试过了:

<DataGrid Style="{StaticResource AzureDataGrid}">

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

现在可以使用最新的Alpha版本的MahApps.Metro(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>

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM