Nano Hash - криптовалюты, майнинг, программирование

Вертикальная полоса прокрутки ListBox не отображается (WPF)

У меня есть представление, которое должно отображать информацию, и для его проверки я добавил тестовые данные. Однако, если я добавлю слишком много элементов для экранного пространства, вертикальная полоса прокрутки не появится.

Это мой XML-код:

<UserControl x:Class="not relevant"
    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"
    xmlns:local="not relevant"
    mc:Ignorable="d"
     Width="250">

<Border Background="{DynamicResource  BG}" BorderBrush="{DynamicResource  BorderBrush}" BorderThickness="1">
    <StackPanel>
        <Grid>
            <Label  Height="30" Content="Geöffnete Designs" HorizontalContentAlignment="Center"></Label>
            <Separator Background="DarkGray"/>
            <ListBox  Background="{DynamicResource BG}" BorderThickness="0" VerticalAlignment="Stretch" >
                <ListBoxItem>
                    <Label Content="Hallo"></Label>
                </ListBoxItem>
                <ListBoxItem>
                    <Label Content="Hallo"></Label>
                </ListBoxItem>
                <ListBoxItem>
                    <Label Content="Hallo"></Label>
                </ListBoxItem>
                <ListBoxItem>
                    <Label Content="Hallo"></Label>
                </ListBoxItem>
                <ListBoxItem>
                    <Label Content="Hallo"></Label>
                </ListBoxItem>
                <ListBoxItem>
                    <Label Content="Hallo"></Label>
                </ListBoxItem>
                <ListBoxItem>
                    <Label Content="Hallo"></Label>
                </ListBoxItem>
                <ListBoxItem>
                    <Label Content="Hallo"></Label>
                </ListBoxItem>
                <ListBoxItem>
                    <Label Content="Hallo"></Label>
                </ListBoxItem>
                <ListBoxItem>
                    <Label Content="Hallo"></Label>
                </ListBoxItem>
                <ListBoxItem>
                    <Label Content="Hallo"></Label>
                </ListBoxItem>
            </ListBox>
        </Grid>
    </StackPanel>
</Border>

I tried adding a Scroll viewer instead but that didn't work properly. Am I doing something wrong or what might me the problem?

22.06.2017

Ответы:


1

Просто удалите StackPanel в коде xaml. Вам это не нужно и создает одни проблемы. Я бы предложил изменить макет стиля, потому что вы не используете Grid, как следовало бы.

По крайней мере, добавьте немного RowDefinitions в макет вашего пользовательского интерфейса, если вы хотите показать Label вверху и List под Label.

Может выглядеть так

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto" />
        <RowDefinition Height="Auto" />
        <RowDefinition Height="*" />
    </Grid.RowDefinitions>
    <Label Grid.Row="0"
           Height="30"
           Content="Geöffnete Designs"
           HorizontalContentAlignment="Center" />
    <Separator Grid.Row="1"
               Background="DarkGray" />
    <ListBox Grid.Row="2"
             BorderThickness="0"
             VerticalAlignment="Stretch">

Результат

22.06.2017
  • Довольно новый для WPF. Спасибо за дальнейшее объяснение в вашем редактировании. Вероятно, следует читать книгу вместо руководств, которые показывают только код без дополнительных объяснений. 22.06.2017
  • Добро пожаловать, все мы когда-то начинали :) Удачи в изучении WPF 22.06.2017

  • 2

    Просто добавьте средство просмотра прокрутки в свой xaml

        <ScrollViewer>
        <Border BorderThickness="1">
            <StackPanel>
                <Grid>
                    <Label  Height="30" Content="Geöffnete Designs" HorizontalContentAlignment="Center"></Label>
                    <Separator Background="DarkGray"/>
                    <ListBox BorderThickness="0" VerticalAlignment="Stretch" >
                        <ListBoxItem>
                            <Label Content="Hallo"></Label>
                        </ListBoxItem>
                        <ListBoxItem>
                            <Label Content="Hallo"></Label>
                        </ListBoxItem>
                        <ListBoxItem>
                            <Label Content="Hallo"></Label>
                        </ListBoxItem>
                        <ListBoxItem>
                            <Label Content="Hallo"></Label>
                        </ListBoxItem>
                        <ListBoxItem>
                            <Label Content="Hallo"></Label>
                        </ListBoxItem>
                        <ListBoxItem>
                            <Label Content="Hallo"></Label>
                        </ListBoxItem>
                        <ListBoxItem>
                            <Label Content="Hallo"></Label>
                        </ListBoxItem>
                        <ListBoxItem>
                            <Label Content="Hallo"></Label>
                        </ListBoxItem>
                        <ListBoxItem>
                            <Label Content="Hallo"></Label>
                        </ListBoxItem>
                        <ListBoxItem>
                            <Label Content="Hallo"></Label>
                        </ListBoxItem>
                        <ListBoxItem>
                            <Label Content="Hallo"></Label>
                        </ListBoxItem>
                    </ListBox>
                </Grid>
            </StackPanel>
        </Border>
    </ScrollViewer>
    
    22.06.2017
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..