这应该是一个非常简单的任务,但是在WPF中我遇到了很多问题。
这是我想要实现的效果: 我在窗口中有许多控件,包括可展开的控件。当内容扩展到可见区域下方时,我希望为该窗口添加滚动条。另外,窗口的宽度不是固定的,可以最大化、调整大小等。
我尝试将ScrollViewer放置在窗口的第一个元素,但它并没有正常工作。如果将高度和宽度设置为自动,则无法滚动;如果将其设置为特定的尺寸,则在窗口最大化时会创建一个框。
任何帮助都将不胜感激!
这应该是一个非常简单的任务,但是在WPF中我遇到了很多问题。
这是我想要实现的效果: 我在窗口中有许多控件,包括可展开的控件。当内容扩展到可见区域下方时,我希望为该窗口添加滚动条。另外,窗口的宽度不是固定的,可以最大化、调整大小等。
我尝试将ScrollViewer放置在窗口的第一个元素,但它并没有正常工作。如果将高度和宽度设置为自动,则无法滚动;如果将其设置为特定的尺寸,则在窗口最大化时会创建一个框。
任何帮助都将不胜感激!
我假设你在处理一些固定宽度的问题。如果你提供一份你的XAML样本,我可以看看是否可以帮到你更多。以下代码可解决不显示方框的问题:
<Window x:Class="WpfSample1.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="300" Width="300">
<ScrollViewer>
<StackPanel>
<Rectangle Height="400" Width="400" Fill="Red" Margin="10" />
<Rectangle Height="400" Width="400" Fill="Green" Margin="10" />
<Rectangle Height="400" Width="400" Fill="Blue" Margin="10" />
<Rectangle Height="400" Width="400" Fill="Yellow" Margin="10" />
</StackPanel>
</ScrollViewer>
</Window>
你应该将ScrollViewer的HorizontalScrollBarVisibility和VerticalScrollBarVisibility设置为Auto。
这是一个示例:
<Grid>
<ScrollViewer HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto">
<Canvas Width="400" Height="400">
<Button Canvas.Left="300">Left 300</Button>
<Button Canvas.Top="300">Top 300</Button>
</Canvas>
</ScrollViewer>
</Grid>
这会替换由VS生成的主窗口的内容。
运行代码并更改窗口的尺寸,最大化窗口,你将看到滚动条的出现和消失。