RadGridView,更改过滤器图标的颜色

时间:2011-11-22 03:04:36

标签: c# silverlight-4.0 telerik radgridview

我正在将模板和样式应用于telerik RadGridView,以便在选择过滤器图标时调整其颜色。

我的问题是我应用了这样的风格,

<telerik:GridViewDataColumn HeaderCellStyle="{StaticResource GridViewHeaderCellStyle}" ></telerik:GridViewDataColumn>

当我选择生成模板的选项时,样式由表达式混合生成。

问题是我想要应用这样的主题,

Telerik.Windows.Controls.StyleManager.ApplicationTheme = new Telerik.Windows.Controls.Windows7Theme();

但突然间,表达式混合生成的样式与主题不匹配。有没有办法获得主题定义的样式?

如果我然后删除部分样式以仅定义这样的下拉样式(这意味着标题的其余部分将不会更改,主题将与生成的样式匹配),

<Style TargetType="GridView:FilteringDropDown">
    <Setter Property="Template" Value="{StaticResource DistinctFilterControlTemplate}"/>
</Style>

如果主题已关闭,它会起作用,它仅将模板应用于过滤下拉列表,但如果主题已启用,则样式将被忽略。

2 个答案:

答案 0 :(得分:0)

由于这个问题的好奇性,我继续搜索了很长时间才找到答案。

对我而言,似乎没有一个属性可以控制Gridview上过滤器图标内的颜色。

为了支持这种说法,我使用Telerik自己的工具Visual Style Builder来改变我可能发现的任何可能影响图标颜色的属性。

正如您在此处所看到的,我能够更改图标外部区域的颜色,但也请注意“图像”属性设置为图片:

enter image description here

这意味着当您将鼠标悬停在按钮上时,控件本身很可能会将该图像替换为位于Telerik套件内某处的另一个图像。

答案 1 :(得分:0)

真的有点破解,但我不得不使用ILSpy进入dll,Telerik.Windows.Themes.Windows7.dll并查找名为的xaml文件,

gridviewheadercell.xaml

如果我将其复制过来并应用了该样式。然后我不得不回到表达式混合,并编辑PART_DistinctFilterControl的模板并从那里开始。

它有效,但如果我们在某个阶段决定应用不同的主题,或者telerik更改当前主题,那么它可能会导致问题。

我愿意接受更好的建议。