1

我正在将模板和样式应用于 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>

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

4

2 回答 2

0

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

gridviewheadercell.xaml

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

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

我愿意接受更好的建议。

于 2011-11-23T04:16:37.680 回答
0

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

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

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

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

在此处输入图像描述

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

于 2011-11-22T19:52:55.053 回答