WPF: Отключите ListBox, но позвольте прокрутить

np.minimum(A, T)
#array([[1,2], [2,2]])
8
задан Matt Briggs 9 February 2009 в 19:05
поделиться

4 ответа

Прием не должен действительно отключать. Отключение заблокирует все сообщения от ползунка.

Во время долгой операции отобразите текст серым в поле списка с помощью его.ForeColor свойства и глотайте все щелчки мышью. Это моделирует отключение управления и позволит прокручивать беспрепятственный.

1
ответ дан 5 December 2019 в 10:44
поделиться

Если Вы заглядываете к шаблону управления ListBox, существует ScrollBar и ItemsPresenter внутри. Поэтому Сделайте ItemsPresenter Отключенным, и Вы получите это легко. Используйте Стиль рева на ListBox, и Вы хороши для движения.

    <Style x:Key="disabledListBoxWithScroll" TargetType="{x:Type ListBox}">
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type ListBox}">
                    <Border x:Name="Bd" SnapsToDevicePixels="true" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Padding="1">
                        <ScrollViewer Padding="{TemplateBinding Padding}" Focusable="false">
                            <ItemsPresenter SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" IsEnabled="False" IsHitTestVisible="True"/>
                        </ScrollViewer>
                    </Border>
                    <ControlTemplate.Triggers>
                        <Trigger Property="IsEnabled" Value="false">
                            <Setter Property="Background" TargetName="Bd" Value="{DynamicResource {x:Static SystemColors.ControlBrushKey}}"/>
                        </Trigger>
                        <Trigger Property="IsGrouping" Value="true">
                            <Setter Property="ScrollViewer.CanContentScroll" Value="false"/>
                        </Trigger>
                    </ControlTemplate.Triggers>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

На ListBox используют Стиль

<ListBox    Style="{DynamicResource disabledListBoxWithScroll}" ..... />
8
ответ дан 5 December 2019 в 10:44
поделиться

В то время как это для Silverlight, возможно, это сообщение в блоге помогло бы Вам начать в правильном направлении? Silverlight Никакой Выбор ListBox и ViewBox

1
ответ дан 5 December 2019 в 10:44
поделиться

Я использовал это решение, оно действительно простое и отлично работает:

Для каждого элемента SurfaceListBoxItem, который вы помещаете в Listbox, сделайте следующее:

item.IsHitTestVisible = false;
1
ответ дан 5 December 2019 в 10:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: