RadGridView, значок изменения цвета фильтра - PullRequest
1 голос
/ 22 ноября 2011

Я применяю шаблон и стили к Telerik RadGridView, чтобы настроить цвет значка фильтра при его выборе.

Моя проблема заключается в том, что я применяю стиль, подобный этому,

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

Стиль генерируется с помощью выражения blend, когда я выбрал опцию создания шаблона.

Проблема в том, что я хочу применить такую ​​тему, как

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

Но тогда всеВнезапно стиль, сгенерированный смесью выражений, не соответствует теме.Есть ли способ получить стиль в соответствии с темой?

Если я затем удаляю части стиля, чтобы определить только стиль выпадающего меню, как это (что означает, что остальная часть заголовка не будет изменена итема будет соответствовать результирующему стилю),

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

Работает, если тема отключена, применяет шаблон только к раскрывающемуся фильтрующему элементу, но если тема включена, стиль игнорируется.

Ответы [ 2 ]

0 голосов
/ 23 ноября 2011

На самом деле немного хак, но мне пришлось зайти в dll, Telerik.Windows.Themes.Windows7.dll, используя ILSpy, и найти файл xaml с именем

gridviewheadercell.xaml

Если бы я скопировал это и применил стиль.Затем мне пришлось вернуться к выражению blend, отредактировать шаблон для PART_DistinctFilterControl и перейти оттуда.

Это работает, но если на каком-то этапе мы решим применить другую тему, или telerik изменим текущую тему, тогдаэто может вызвать проблемы.

Я открыт для лучших предложений.

0 голосов
/ 22 ноября 2011

Из-за любопытной природы этого вопроса я долго искал ответ, чтобы найти ответ.

Мне кажется, что нет свойства, которое контролирует цвет внутризначок фильтра в Gridview.

Для поддержки этого утверждения я использовал Visual Style Builder, собственный инструмент Telerik, для изменения любого свойства, которое я могу найти, которое может повлиять на цвет значка.

Как вы можете видеть здесь, мне удалось изменить цвета областей за пределами значка, но также заметить, что свойство «Изображение» установлено как рисунок:

enter image description here

Это означает, что при наведении курсора на кнопку сам элемент управления, скорее всего, заменяет изображение другим, расположенным где-то в наборе Telerik.

...