C# 文本块中的WPF自动滚动不工作

C# 文本块中的WPF自动滚动不工作,c#,wpf,xaml,.net-core,C#,Wpf,Xaml,.net Core,我试图在文本块内实现垂直滚动。但它不起作用 <Window x:Class="FileManager.MainWindow" namespace:FileManager" mc:Ignorable="d" Style="{StaticResource RedStyle}" Title="MainWindow" Height="450" Width="800"&g

我试图在文本块内实现垂直滚动。但它不起作用

<Window x:Class="FileManager.MainWindow" namespace:FileManager" mc:Ignorable="d" Style="{StaticResource RedStyle}" Title="MainWindow" Height="450" Width="800">
    <Grid>
        <TextBlock Text="ExFile Manager Application" HorizontalAlignment="Center" Margin="20,5,20,0"/>
        <TextBox HorizontalAlignment="Center" Height="43" Margin="30,35,0,0" TextWrapping="Wrap" Text="Select only the text file" VerticalAlignment="Top" Width="476" Name="FileNameTextBox"/>
        <Button x:Name="BrowseButton" Content="Browse a file" HorizontalAlignment="Right" Click="BrowseButton_Click" Margin="485,35,10,0" VerticalAlignment="Top" Width="121" RenderTransformOrigin="1.047,0.821" Height="40"/>
       
        <ScrollViewer HorizontalScrollBarVisibility="Auto">
            <StackPanel>
                <TextBlock HorizontalAlignment="Left" Margin="30,96,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Name="TextBlock1"/>
            </StackPanel>
        </ScrollViewer>
    </Grid>
</Window>

主要问题是您启用了
ScrollViewer
的水平滚动条,这将导致文本块以正无穷大进行测量。因此,
TextBlock
将扩展到其全宽以显示所有文本,并且内容将显示在一行中。你的选择是:

  • 移除
    水平滚动条visibility=“Auto”
    以禁用水平滚动,这将最大限度地将
    TextBlock
    扩展到包含
    网格的宽度,然后包装文本
  • 宽度
    最大宽度
    分配给
    文本块
    ,使其不会扩展超过该大小,并在超过该大小时将文本换行到下一行,从而启用水平和垂直滚动
总的来说,您的布局很奇怪。所有控件在
网格中重叠
,您可以设置
边距
s来定位它们。您应该做的是在
网格中创建行和列来定位控件或使用不同的面板进行布局。有很多选项,可以大大简化布局。以
网格
行和列为例:

<Grid>
   <Grid.RowDefinitions>
      <RowDefinition Height="Auto"/>
      <RowDefinition Height="Auto"/>
      <RowDefinition/>
   </Grid.RowDefinitions>
   <Grid.ColumnDefinitions>
      <ColumnDefinition/>
      <ColumnDefinition Width="Auto"/>
   </Grid.ColumnDefinitions>
   <TextBlock Grid.Row="0" Grid.ColumnSpan="2" Text="ExFile Manager Application" HorizontalAlignment="Center" Margin="20,5,20,0"/>
   <TextBox Grid.Row="1" Grid.Column="0" Height="43"  TextWrapping="Wrap" Text="Select only the text file" Name="FileNameTextBox"/>
   <Button Grid.Row="1" Grid.Column="1" x:Name="BrowseButton" Content="Browse a file"/>
   <ScrollViewer Grid.Row="2" Grid.ColumnSpan="2">
      <StackPanel>
         <TextBlock HorizontalAlignment="Left" TextWrapping="Wrap" Name="TextBlock1"/>
      </StackPanel>
   </ScrollViewer>
</Grid>


您可以在页面上查看有关布局和WPF面板的更多信息。

这段代码是否达到了您想要的效果

    <Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="100"/>
        <RowDefinition Height="*"/>
    </Grid.RowDefinitions>
    <TextBlock Text="ExFile Manager Application" HorizontalAlignment="Center" Margin="20,5,20,0"/>
    <TextBox HorizontalAlignment="Center" Height="43" Margin="30,35,0,0" TextWrapping="Wrap" 
             Text="Select only the text file"
             VerticalAlignment="Top" Width="476" Name="FileNameTextBox"/>
    <Button x:Name="BrowseButton" Content="Browse a file" HorizontalAlignment="Right"  Margin="485,35,10,0" VerticalAlignment="Top" Width="121" RenderTransformOrigin="1.047,0.821" Height="40"/>
   
    <Grid Grid.Row="1">
        <ScrollViewer>
            <TextBlock 
                       HorizontalAlignment="Left" Margin="30,96,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Name="TextBlock1"
                       Text="bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla "/>
        </ScrollViewer>
    </Grid>
        
</Grid>


VerticalScrollBarVisibility=“Auto”
不工作。当我添加scrollviewer时,我的butoon被禁用。您似乎有,在另一个帐户下。不要多次发布同一个问题。你想达到什么目的?