WPF Listview Scrollbar Видимость Триггер - PullRequest
0 голосов
/ 18 декабря 2018

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

Я включил триггер в стиле списка, но получаю противоречивые результаты.Например, свойство background в триггере всегда активно независимо от видимости полосы прокрутки.

Я посмотрел на MSDN для ScrollViewer.ComputedVerticalScrollBarVisibility Свойство , но у меня нетмного удачи в выяснении, что не так.

<ListView Grid.Row="1" Grid.Column="1" BorderBrush="{x:Null}" BorderThickness="0" ItemsSource="{Binding Tasks}" Margin="5"
          ScrollViewer.CanContentScroll="False" ScrollViewer.HorizontalScrollBarVisibility="Disabled">
    <ListView.ItemContainerStyle>
        <Style TargetType="{x:Type ListViewItem}">
            <Setter Property="Background" Value="Transparent" />
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="{x:Type ListViewItem}">
                        <ContentPresenter />
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>
    </ListView.ItemContainerStyle>
    <ListView.ItemTemplate>
        <DataTemplate>
            <!-- SNIP -->
        </DataTemplate>
    </ListView.ItemTemplate>
    <ListView.Style>
        <Style>
            <Setter Property="ListView.Padding" Value="0,0,5,0"/>
            <Setter Property="ListView.Background" Value="{x:Null}" />
            <Style.Triggers>
                <Trigger Property="ScrollViewer.ComputedVerticalScrollBarVisibility" Value="Hidden">
                    <Setter Property="ListView.Padding" Value="0"/>
                    <Setter Property="ListView.Background" Value="Red" />
                </Trigger>
            </Style.Triggers>
        </Style>
    </ListView.Style>
</ListView>

1 Ответ

0 голосов
/ 18 декабря 2018

Я пишу пример стиля ListView, который работал для меня.Я попробовал.

<Style TargetType="ListView">
      <Setter Property="ScrollViewer.HorizontalScrollBarVisibility" Value="Disabled"/>
      <Setter Property="ScrollViewer.VerticalScrollBarVisibility" Value="Auto"/>
      <Setter Property="Template">
           <Setter.Value>
                  <ControlTemplate TargetType="ListView">
                          <ScrollViewer>
                                 <ScrollViewer.Style>
                                    <Style TargetType="ScrollViewer">
                                       <Style.Triggers>
                                             <Trigger Property="ComputedVerticalScrollBarVisibility" Value="Visible">
                                                <Setter Property="Padding" Value="100"/>
                                              </Trigger>
                                              <Trigger Property="ComputedVerticalScrollBarVisibility" Value="Collapsed">
                                                  <Setter Property="Padding" Value="10"/>
                                              </Trigger>
                                       </Style.Triggers>
                                     </Style>
                                 </ScrollViewer.Style>
                             <ItemsPresenter />
                        </ScrollViewer>
                 </ControlTemplate>
            </Setter.Value>
        </Setter>
 </Style>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...