2008-11-22 2 views
0

У меня возникла проблема с элементом управления представлением WPF Tab, в котором я надеялся, что кто-то здесь сможет мне помочь.WPF Tab View, пользовательские шаблоны и доступность

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

Для этого я изменил шаблон управления по умолчанию для вкладки с помощью команды «Редактировать копию» в Expression Blend. Затем я просто устанавливаю радиус угла для «границы» заголовка вкладки.

Проблема с этим подходом состоит в том, что команда «Редактировать копирование» приводит к генерации буквенных значений цвета для градиентных кистей, используемых для отображения фоновых вкладок «Актив» и «Мышь поверх».

Это вызывает проблемы, когда включен режим «привет контраста». Вместо перехода на контрастную цветовую схему, как и другие элементы управления, вкладка с измененным шаблоном будет использовать литеральные значения цвета, указанные в градиентных кистях, для вкладок активных и мышечных вкладок. Это приводит к невозможности чтения этих вкладок, потому что текст в заголовке вкладки изменяется на «белый», когда ОС переключается в режим контраста (белый текст на сером фоне не читается).

Я понял, что, возможно, я смогу вернуться к квадратным вкладкам, когда включен режим контрастной контрастности, что устранит эту проблему. Однако, я полагаю, будут проблемы с пользователями, у которых установлены настраиваемые темы Windows.

Итак, что мне интересно: есть

  1. Есть ли способ, что я могу изменить градиенты, чтобы указать на системные ресурсы, а не буквенных значения, так что цвета будут обновляться корректно, когда режим привета контрастности
  2. Или, есть ли способ установить радиус угла на границе заголовка вкладки без создания нового шаблона управления?

Edit:

Я думаю, что я должен быть немного более четко о том, что я ищу. Мне нужен элемент управления вкладкой, который ведет себя точно так же, как и элемент управления вкладками по умолчанию, за исключением того, что углы заголовка вкладки закруглены. По умолчанию элемент управления вкладкой будет использовать градиенты для фона вкладки и будет «выделять» неактивные вкладки, когда пользователь перебирает их. Он также правильно отреагирует и изменит его цвет, и это приведет к поведению, когда ОС переключится в режим контраста. Мне все еще нужно это поведение.

Создание копии шаблона управления по умолчанию в Blend создает шаблон управления, который не работает правильно в режиме контраста. Я хочу знать, что мне нужно сделать с шаблоном управления или кодом в моем окне, чтобы заставить этот сгенерированный шаблон управления работать правильно в высококонтрастном режиме.

ответ

1

Невозможно сделать закругленные углы вкладок без создания настраиваемого шаблона для TabItem.Выполнение «Редактирования копии» в blend Я верю, что создает шаблон по умолчанию, основанный на текущей теме окон, которые у вас есть (я могу ошибаться, однако, я верю, что youhn вы делаете дамп controltemplate, который он получает, текущий шаблон управления, который определяется системой тема. как в презентации.аэро или что-то в этом роде). Однако, если вы хотите поставить цвета, что система будет использовать, когда изменения затем sepcify их, как это в шаблоне:

Color="{DynamicResource {x:Static SystemColors.XXXX}" 

Это будет использовать системные цвета, чтобы стиль управления и будет обновляться, чтобы отражать изменения в системная тема.

+0

Добавление ссылок на кисти системы не является проблемой (я так много понял). Проблема в том, что я не могу воссоздать поведение элемента управления по умолчанию с помощью системных кистей. – 2008-11-26 01:24:49

0

Добавьте простой стиль управления в свое окно в Blend. Это добавит SimpleStyles.xaml, включая один для элемента управления вкладкой.

Посмотрите на Family.Show и как они занимаются черными и серебряными темами.

Между этими двумя должно быть хороший пример того, как настроить элемент управления вкладкой и обрабатывать разные темы.

+0

Это просто создает новый элемент управления вкладкой с шаблоном управления, настроенным на удаление всего стиля. Это не то, что я хочу. Я хочу весь нормальный стиль, но я также хочу, чтобы углы округлились. Однако я также хочу, чтобы приложение можно было использовать, когда включен режим «привет контраста». – 2008-11-22 02:48:58