Показывать сосредоточенный элемент на загруженном элементе управления в WPF - PullRequest
0 голосов
/ 07 марта 2019

Как выделить выделенный элемент в моем виде после его загрузки? Я знаю, что он сфокусирован, потому что, если я нажимаю Enter или перемещаюсь с клавиатуры, он ведет себя как ожидалось, и если я возвращаюсь к первому элементу, он правильно подсвечивается. Я просто хотел бы прояснить пользователю, какой элемент выбран после загрузки представления. Это происходит с кнопками или флажками.

Ответы [ 2 ]

0 голосов
/ 21 марта 2019

вау, я совсем забыла спросить об этом.В конце мне пришлось удалить свойство FocusVisualStyle, установленное в моем стиле, и написать простой триггер для события IsFocused. Это позаботилось о моей проблеме.

0 голосов
/ 07 марта 2019

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

Настройка фокуса должна быть сделана явно, в примере это будет следующая строка

FocusManager.FocusedElement="{Binding ElementName=Button}"

Это устанавливает фокус на кнопке, при этом вы должны увидеть, что кнопка подсвечена. Удалите вышеуказанную строку, и кнопка не будет выделена.

<Window x:Class="WpfApp4.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        FocusManager.FocusedElement="{Binding ElementName=Button}"
        mc:Ignorable="d"        
        Title="MainWindow" Height="450" Width="800">
    <StackPanel>
        <Button IsDefault="False"
                Width="150"
                Height="30"
                Name="Button"
                Content="Button"/>
    </StackPanel>
</Window>
...