Как добавить хромовый прямоугольник фокуса в элемент управления wpf? - PullRequest
1 голос
/ 25 октября 2011

Есть много вопросов о том, как удалить фокусирующие прямоугольники, но я хочу, чтобы они всегда отображались, как это делает Chrome / Safari. Я думаю, что хочу использовать рекламное устройство, чтобы не мешать существующим стилям, которые есть у элемента управления, но я никогда не использовал их и не могу найти примеров того, как делать то, что я хочу. Может ли кто-нибудь указать мне правильное направление?

Редактировать: поле ввода имеет голубую рамку, когда фокус

Input box has blue border when focused

1 Ответ

1 голос
/ 03 ноября 2011

Эффект называется «внешнее свечение»;как только вы это узнаете, Google обнаружит множество вещей.Я нашел, что это работает довольно хорошо:

        <DropShadowEffect x:Key="SelectionGlow" BlurRadius="3" ShadowDepth="0" Color="{StaticResource {x:Static SystemColors.HighlightColorKey}}" Direction="0" />

        <Style TargetType="TextBox">
            <Style.Triggers>
                <Trigger Property="IsKeyboardFocusWithin" Value="True">
                    <Setter Property="Effect" Value="{StaticResource SelectionGlow}"/>
                </Trigger>
            </Style.Triggers>
        </Style>

Несколько вещей об этом решении:

  1. Он не отключает прямоугольник фокуса на кнопках и т. Д.
  2. Я не уверен, если производительность является проблемой - есть проблемы (были?) С рендерингом растрового эффекта.Я не уверен, применяется ли это больше, или это квалифицируется как растровый эффект.Он используется только для сфокусированного элемента, поэтому он не может быть слишком плохим.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...