Увеличьте FontSize для наведенного элемента в WPF ListBox - PullRequest
1 голос
/ 13 декабря 2010

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

<ListBox Name="ListBox" ItemsSource="{Binding MyList}" DisplayMemberPath="Property1">

Спасибо

Ответы [ 2 ]

1 голос
/ 13 декабря 2010

Вы должны быть в состоянии использовать триггер для этого. Как то так

<ListBox Name="ListBox" ItemsSource="{Binding MyList}" DisplayMemberPath="Property1">
    <ListBox.ItemContainerStyle>
        <Style TargetType="ListBoxItem">
            <Style.Triggers>
                <Trigger Property="IsMouseOver" Value="True">
                    <Setter Property="TextBlock.FontSize" Value="18"/>
                </Trigger>
            </Style.Triggers>
        </Style>
    </ListBox.ItemContainerStyle>
</ListBox>
0 голосов
/ 13 декабря 2010

Meleak ответит, как сделать то, что вы просили. Но когда вы это сделаете, вы обнаружите, что весь список выводится на экран, когда вы изменяете размер шрифта одного из его элементов, что может быть довольно нежелательно. Вы можете попробовать вместо установки размера шрифта применить преобразование масштаба:

<ListBox.ItemContainerStyle>
    <Style TargetType="ListBoxItem">
        <Style.Triggers>
            <Trigger Property="IsMouseOver" Value="True">
                <Setter Property="RenderTransform">
                  <Setter.Value>
                    <ScaleTransform ScaleX="2" ScaleY="2"/>
                  </Setter.Value>
                </Setter>
            </Trigger>
        </Style.Triggers>
    </Style>
</ListBox.ItemContainerStyle>

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

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