繁体   English   中英

如何在WPF / XAML中滚动网格行?

[英]How do I scroll a grid row in WPF/XAML?

嗨,谢谢你的期待!

背景

我在WPF中创建了一个简单的小应用程序,它具有由一列和两行组成的网格布局。 顶行包含标题的简单标签,底行包含一个在运行时动态填充图像缩略图的wrappanel。 这是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>

现在一切都正常,但我没有得到我的垂直滚动能力(我不想要水平滚动)。

有什么想法吗?

谢谢!

马特

我知道它是新年前夜,但你在WrapPanel中没有任何东西,你有行高度自动,所以它会增加内容。 把东西放在WrapPanel中并将高度设置为*。 并从ColumnPanel内的Label上取下Column。

在你的“网格之前”的例子中有一个Grid.Row。 新年快乐。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM