Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/258.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# RadGridView,更改过滤器图标的颜色_C#_Silverlight 4.0_Telerik_Radgridview - Fatal编程技术网

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

C# RadGridView,更改过滤器图标的颜色,c#,silverlight-4.0,telerik,radgridview,C#,Silverlight 4.0,Telerik,Radgridview,我正在将模板和样式应用于telerik RadGridView,以在选择过滤器图标时调整其颜色 我的问题是我采用了这样的风格 <telerik:GridViewDataColumn HeaderCellStyle="{StaticResource GridViewHeaderCellStyle}" ></telerik:GridViewDataColumn> Telerik.Windows.Controls.StyleManager.ApplicationTheme =

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

我的问题是我采用了这样的风格

<telerik:GridViewDataColumn HeaderCellStyle="{StaticResource GridViewHeaderCellStyle}" ></telerik:GridViewDataColumn>
Telerik.Windows.Controls.StyleManager.ApplicationTheme = new Telerik.Windows.Controls.Windows7Theme();
但是突然之间,expression blend生成的样式与主题不匹配。有没有办法获得主题定义的风格

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



如果主题处于关闭状态,它将只将模板应用于过滤下拉列表,但如果主题处于打开状态,则样式将被忽略。

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

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

为了支持这一说法,我使用Telerik自己的工具VisualStyleBuilder来改变我能找到的任何可能影响图标颜色的属性

正如您在这里看到的,我可以更改图标外部区域的颜色,但也注意到“Image”属性设置为图片:


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

确实有点黑客行为,但我必须使用ILSpy进入dll Telerik.Windows.Themes.Windows7.dll,并查找名为

gridviewheadercell.xaml

如果我把它复制过来,然后应用样式。然后我不得不回到expression blend,编辑PART_DistinctFilterControl的模板,并从那里开始

它是可行的,但是如果我们在某个阶段决定应用不同的主题,或者telerik改变当前的主题,那么它可能会引起问题


我愿意接受更好的建议。

我认为这是因为您的帖子没有标记silverlight:p。差异并不总是最大的,但在SL中您可能会改变颜色。让我知道你发现了什么。我想我们在看不同的东西。我使用的控件由组成图标的路径组成,而不是图像。当我查看视觉样式生成器时,它似乎只适用于ASP.NET。哎呀,我需要澄清我使用的是silverlight。对不起,KreepN。我写这个问题相当匆忙。现在更新了。我也这么想,没什么大不了的。不过,我在Telerik网站上没有看到任何关于silverlight工具的内容,因此您可能很难分解工具本身的结构。
<Style TargetType="GridView:FilteringDropDown">
    <Setter Property="Template" Value="{StaticResource DistinctFilterControlTemplate}"/>
</Style>