Как прокрутить строку сетки в WPF / XAML? - PullRequest
5 голосов
/ 01 января 2012

Привет и спасибо за поиск!

Фон

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

<Window x:Class="HTNavigator.MainWindow" 
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
        Title="MainWindow" WindowState="Maximized" WindowStyle="None">
    <Window.Background>
        <ImageBrush ImageSource="/HTNavigator;component/Images/HNBG.jpg" />
    </Window.Background>
    <Grid >
        <Grid.ColumnDefinitions>
            <ColumnDefinition />
        </Grid.ColumnDefinitions>
        <Grid.RowDefinitions>
            <RowDefinition Height="75"/>
            <RowDefinition Height="Auto"/>
        </Grid.RowDefinitions>  
        <StackPanel Grid.Column="0" Grid.Row="0" Height="50" HorizontalAlignment="Left" Margin="30,10,0,0" Name="stackPanel1" VerticalAlignment="Top" Width="Auto" FlowDirection="LeftToRight" Orientation="Horizontal" >
            <Label Content="Home Navigator v0.1" FontFamily="Tahoma" FontSize="18" FontWeight="Bold" Foreground="White" />
            <Button Content="Close" Height="50" Click="Button_Click"></Button>
        </StackPanel>
        <ScrollViewer Grid.Row="1" Name="MyScrollViewer" HorizontalScrollBarVisibility="Disabled" VerticalScrollBarVisibility="Auto">
            <WrapPanel HorizontalAlignment="Center" Name="spContainer" VerticalAlignment="Top" ClipToBounds="True"></WrapPanel>
        </ScrollViewer>
    </Grid>
</Window>

Проблема

Полоса прокрутки не отображается, а прокрутка колесиком мыши также не работает.Изначально я не использовал макет сетки, и в этот раз эта часть XAML вела себя так, как и ожидалось:

<ScrollViewer Name="MyScrollViewer" HorizontalScrollBarVisibility="Disabled" VerticalScrollBarVisibility="Auto">
            <WrapPanel HorizontalAlignment="Center" Name="spContainer" VerticalAlignment="Top"               ClipToBounds="True" ItemHeight="Auto"> </WrapPanel>
</ScrollViewer>

Теперь все выглядит правильно, но у меня нет возможности вертикальной прокрутки (яне хочу горизонтальную прокрутку).

Есть мысли?

Спасибо!

Мэтт

1 Ответ

4 голосов
/ 01 января 2012

Я знаю, что это канун Нового года, но у вас ничего нет в WrapPanel, и у вас есть высота строки до Auto, поэтому она будет расти для контента.Поместите что-нибудь в WrapPanel и установите высоту *.И снимите столбец с метки, которая находится внутри StackPanel.

В вашем примере «до того, как у вас была Сетка» есть Grid.Row.С новым годом.

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