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被禁用。您似乎有,在另一个帐户下。不要多次发布同一个问题。你想达到什么目的?