C# Datagrid奇怪的视觉效果

C# Datagrid奇怪的视觉效果,c#,wpf,visual-studio,datagrid,C#,Wpf,Visual Studio,Datagrid,为什么我的DataGrid看起来像这样? 我一直在添加一些风格,我有一些“副作用”。缺了几行,各处的颜色都不一样(中间较浅)。 这是datagrid的xaml: <DataGrid x:Name="dataGrid" RowHeaderWidth="0" CanUserResizeRows="False" HorizontalScrollBarVisibility="Disabled" BorderThickness="0" GridLinesVisibility="None" Hei

为什么我的
DataGrid
看起来像这样?

我一直在添加一些风格,我有一些“副作用”。缺了几行,各处的颜色都不一样(中间较浅)。 这是datagrid的xaml:

<DataGrid x:Name="dataGrid" RowHeaderWidth="0"  CanUserResizeRows="False" HorizontalScrollBarVisibility="Disabled" BorderThickness="0" GridLinesVisibility="None" Height="400" Width="800" HorizontalAlignment="Right" CanUserAddRows="True" Margin="0,210,0,0" Background="Transparent" Foreground="Gray">
                    <DataGrid.Columns>
                        <DataGridTextColumn Header="Name"  CanUserResize="False" IsReadOnly="True" Binding="{Binding Path=Mp3Title}" Width="300" ></DataGridTextColumn>
                        <DataGridTextColumn Header="Download Info" CanUserResize="False" IsReadOnly="True"  Binding="{Binding Path=DownloadProgress}" Width="250"></DataGridTextColumn>
                        <DataGridTextColumn Header="State" CanUserResize="False" IsReadOnly="True"  Binding="{Binding Path=State}" Width="250"></DataGridTextColumn>
                    </DataGrid.Columns>
                    <DataGrid.Resources>
                        <Style TargetType="{x:Type DataGridColumnHeader}">
                            <Setter Property="Background" Value="Transparent" />
                            <Setter Property="Margin" Value="80,0" />
                        </Style>
                        <Style TargetType="{x:Type DataGridCell}">
                            <Setter Property="Background" Value="#FF181818"/>
                            <Setter Property="BorderThickness" Value="0"/>
                            <Setter Property="TextBlock.TextAlignment" Value="Left" />
                        </Style>
                    </DataGrid.Resources>
                </DataGrid >

样式中有什么东西把它弄乱了吗?

您提供的上述代码似乎很好。这可能有一些定义,比如Window.Resources

单击时会变轻吗?那么,应用这个可能会有用

<DataGrid.Resources>
    <SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="#FFFDFD0A"/>
    <SolidColorBrush x:Key="{x:Static SystemColors.HighlightTextBrushKey}" Color="Black"/>
    <SolidColorBrush x:Key="{x:Static SystemColors.InactiveSelectionHighlightBrushKey}" Color="#FFFDFD0A"/>
</DataGrid.Resources>

您可以根据自己的选择更改颜色


或者,颜色在没有任何输入的情况下变浅(单击)?你能解释更多吗?

找到了一个解决方案,使它看起来更好看

xaml:



如图所示,网格的颜色有所不同。有些颜色较深,有些颜色较浅。我会投票支持你,因为你的例子给了我一些想法,但我找到了解决方案,使它变得更好。我将发布一个带有图片和xaml的答案。很高兴知道你找到了解决方案。似乎正在利用鼠标事件。作为提示,我认为您的DataGrid不需要用户编辑,设置Readonly可能可以避免用户的误用。我也会对你的问题投赞成票。希望你一如既往地做得很好!
<DataGrid.Resources>
    <SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="#FFFDFD0A"/>
    <SolidColorBrush x:Key="{x:Static SystemColors.HighlightTextBrushKey}" Color="Black"/>
    <SolidColorBrush x:Key="{x:Static SystemColors.InactiveSelectionHighlightBrushKey}" Color="#FFFDFD0A"/>
</DataGrid.Resources>
<DataGrid x:Name="dataGrid" RowHeaderWidth="0"  CanUserResizeRows="False" VerticalScrollBarVisibility="Hidden" HorizontalScrollBarVisibility="Disabled" BorderThickness="0" GridLinesVisibility="Horizontal" Height="200" Width="800" HorizontalAlignment="Right" CanUserAddRows="True" Margin="0,210,0,0" Background="Transparent" Foreground="Gray" MouseEnter="dataGrid_MouseEnter" MouseLeave="dataGrid_MouseLeave">
                    <DataGrid.Columns>
                        <DataGridTextColumn Header="Name"  CanUserResize="False" IsReadOnly="True" Binding="{Binding Path=Mp3Title}" Width="300" ></DataGridTextColumn>
                        <DataGridTextColumn Header="Download Info" CanUserResize="False" IsReadOnly="True"  Binding="{Binding Path=DownloadProgress}" Width="250"></DataGridTextColumn>
                        <DataGridTextColumn Header="State" CanUserResize="False" IsReadOnly="True"  Binding="{Binding Path=State}" Width="250"></DataGridTextColumn>
                    </DataGrid.Columns>
                    <DataGrid.Resources>
                        <SolidColorBrush x:Key="{x:Static SystemColors.HighlightTextBrushKey}" Color="White"/>
                        <SolidColorBrush x:Key="{x:Static SystemColors.InactiveSelectionHighlightTextBrushKey}" Color="Gray"/>
                        <Style TargetType="{x:Type DataGridColumnHeader}">
                            <Setter Property="Background" Value="Transparent" />
                            <Setter Property="Margin" Value="80,10" />
                            <Setter Property="Height" Value="30"/>
                        </Style>
                        <Style TargetType="{x:Type DataGridCell}">
                            <Setter Property="Background" Value="#FF181818"/>
                            <Setter Property="BorderThickness" Value="0"/>
                            <Setter Property="TextBlock.TextAlignment" Value="Left" />
                            <Setter Property="Height" Value="30"/>
                        </Style>
                    </DataGrid.Resources>
                </DataGrid >