【问题标题】:How to change telerik:RadGridView row background color on mouse hover如何更改telerik:鼠标悬停时的RadGridView行背景颜色
【发布时间】:2019-10-01 04:55:42
【问题描述】:

我对 Telerik 控件很陌生。我正在使用 telerik:RadGridView ,默认情况下,当鼠标光标悬停在该行上方时,该行的背景变为浅灰色。这使得该行中的文本难以阅读。所以,我想知道当行悬停时,有没有办法将行背景更改为蓝色而不是浅灰色。另外,我的 Telerik 版本是 2016 年。以下是我正在使用的网格。

<telerik:RadGridView x:Name="gridReport" ItemsSource="{Binding Tab.ListGraphReport}" 
                                                         ItemTemplate="{StaticResource ListBoxDataTemplate}"
                                                         GroupPanelBackground="Transparent" 
                                                         GroupPanelForeground="White"  
                                                         RowIndicatorVisibility="Collapsed" 
                                                         ColumnWidth="*" 
                                                         Background="Transparent" 
                                                         Foreground="White"
                                                         AutoGenerateColumns="False"
                                                         ShowGroupPanel="False">
                                        <telerik:RadGridView.Columns>
                                            <telerik:GridViewDataColumn Header="Indicator" IsFilterable="False">
                                                <telerik:GridViewDataColumn.CellTemplate>
                                                    <DataTemplate>
                                                        <Grid>
                                                            <Grid.ColumnDefinitions>
                                                                <ColumnDefinition Width="*" />
                                                                <ColumnDefinition Width="6*"/>
                                                            </Grid.ColumnDefinitions>
                                                            <Rectangle Height="10" Width="10" Fill="{Binding ColorName, Converter={StaticResource NVarToBrushConverter}}" Grid.Column="0" />
                                                            <TextBlock Text="{Binding Graph}" Grid.Column="1"/>
                                                        </Grid>
                                                    </DataTemplate>
                                                </telerik:GridViewDataColumn.CellTemplate>
                                            </telerik:GridViewDataColumn>
                                            <telerik:GridViewDataColumn Header="Min" DataMemberBinding="{Binding Min}" DataFormatString="{}{0:N2}" IsFilterable="False" >
                                            </telerik:GridViewDataColumn>
                                            <telerik:GridViewDataColumn Header="Max" DataMemberBinding="{Binding Max}" DataFormatString="{}{0:N2}" IsFilterable="False">
                                            </telerik:GridViewDataColumn>
                                            <telerik:GridViewDataColumn Header="AVG" DataMemberBinding="{Binding Avg}" DataFormatString="{}{0:N2}" IsFilterable="False">
                                            </telerik:GridViewDataColumn>
                                            <telerik:GridViewDataColumn Header="Unit" DataMemberBinding="{Binding Unit}" DataFormatString="{}{0:N2}" IsFilterable="False">
                                            </telerik:GridViewDataColumn>
                                        </telerik:RadGridView.Columns>
                                    </telerik:RadGridView>

【问题讨论】:

  • 你用的是哪个主题?
  • @mm8 这是 Expression_DarkTheme。

标签: c# wpf telerik


【解决方案1】:

您需要从Themes.Implicit\WPF40\ExpressionDark\Themes\Telerik.Windows.Controls.GridView.xaml 复制GridViewRow 的默认ControlTemplate 并更改Background_Over 元素的Background 属性,或ItemBackground_Over 画笔的Color

<SolidColorBrush x:Key="ItemBackground_Over" Color="#FF565656"/>

【讨论】:

  • 感谢您的回答。你能告诉我在哪里可以找到这个文件吗?我找不到路径。
  • @Trax:在你电脑的C:\Program Files (x86)\Telerik文件夹中,前提是你已经安装了SDK。
  • @Trax:你试过这个还是发生了什么?如果您的原始问题已经解决,请记得接受答案。
  • 我从未找到该文件夹​​,因为 Telerik 没有安装在我的虚拟机中。我只是在使用 dll。 :(
  • 您可以通过在 Blend 中右键单击 GridViewRow 并选择编辑模板->编辑副本来生成模板。
【解决方案2】:

要更改鼠标悬停在RadGridView 行的背景上,请设置GridViewRow 控件的MouseOverBackground 属性。

<telerik:RadGridView.RowStyle>
    <Style TargetType="telerik:GridViewRow">
        <Setter Property="MouseOverBackground" Value="Red" />
    </Style>
</telerik:RadGridView.RowStyle>

在此处了解更多信息:https://docs.telerik.com/devtools/wpf/controls/radgridview/rows/selected-row-background

请注意,如果您使用NoXaml dll,您需要将行样式设置为默认的GridViewRowStyle

<telerik:RadGridView.RowStyle>
    <Style TargetType="telerik:GridViewRow" BasedOn="{StaticResource GridViewRowStyle}">
        <Setter Property="MouseOverBackground" Value="Red" />
    </Style>
</telerik:RadGridView.RowStyle>

【讨论】:

  • 嗨,马丁。感谢您的回答。但我收到了这个错误。成员“MouseOverBackground”无法识别或无法访问。
  • Telerik UI for WPF R1 2019 SP1 版本提供 MouseOverBackground 属性
猜你喜欢
  • 1970-01-01
  • 2013-10-07
  • 1970-01-01
  • 2010-12-25
  • 2020-02-14
  • 1970-01-01
  • 2014-05-19
  • 2016-05-17
相关资源
最近更新 更多