Отключить IsSelected цвет по умолчанию - PullRequest
0 голосов
/ 09 апреля 2019

Когда я нажимаю на TreeViewItem, вызывается ItemClicked ().

C #:

    public void ItemClicked(object sender, RoutedEventArgs e)
    {
        if (sender is TreeViewItem ClickedNode)
        {
            if (ClickedNode.HasItems) // Its a parent node
            {
                if (CtrlPressed)
                {
                    var SelectedChild = TreeView.SelectedItem as TreeViewItem; // Have to do this manually since the sender is parent???
                    SelectedChild.Background = Brushes.Black;
                    SelectedChild.Foreground = Brushes.White;
                }
            }
        }

В моем XAML я отключил IsSelected цвета по умолчанию:

<Grid>

    <TreeView Name="TreeView">
        <TreeView.ItemContainerStyle>
            <Style TargetType="{x:Type TreeViewItem}">
                <EventSetter Event="MouseLeftButtonUp"
                             Handler="ItemClicked"/>
            </Style>
        </TreeView.ItemContainerStyle>
        <TreeView.Resources>
            <SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}"
                  Color="Transparent" />
            <SolidColorBrush x:Key="{x:Static SystemColors.HighlightTextBrushKey}"
                  Color="Black" />
            <SolidColorBrush x:Key="{x:Static SystemColors.InactiveSelectionHighlightBrushKey}"
                  Color="Transparent" />
            <SolidColorBrush x:Key="{x:Static SystemColors.InactiveSelectionHighlightTextBrushKey}"
                  Color="Black" />
        </TreeView.Resources>

    </TreeView>

</Grid>

Так что теперь, когда я управляю щелчком на узле, он будет отображаться не черным, а белым. Таким образом, прозрачность, кажется, переопределяет только что установленные Brushes.Black. Цвет переднего плана, кажется, проходит.

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

Второй вопрос: как исправить переопределение цветов? Я ничего не хочу, когда IsSelected вообще верно ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...