Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用于可调整大小窗口的WPF滚动条_Wpf_Wpf Controls_Scroll_Scrollviewer - Fatal编程技术网

用于可调整大小窗口的WPF滚动条

用于可调整大小窗口的WPF滚动条,wpf,wpf-controls,scroll,scrollviewer,Wpf,Wpf Controls,Scroll,Scrollviewer,这应该是一个非常简单的任务,但由于某些原因,我在WPF中遇到了很多问题 这就是我希望发生的事情: 我在窗口中有一组控件,包括扩展器控件。当内容扩展到可见区域下方时,我希望该窗口有滚动条。此外,窗口的宽度不是固定的,它可以最大化、调整大小等 我尝试将ScrollViewer作为窗口中的第一个元素,但它无法正常工作。如果我将“高度”和“宽度”设置为“自动”,它不会滚动,如果我将其设置为“特定锁定”,它会在窗口最大化时创建一个框 任何帮助都将不胜感激 我假设您有一些固定宽度问题。如果您提供您的XAML

这应该是一个非常简单的任务,但由于某些原因,我在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的水平滚动条可见性和垂直滚动条可见性设置为自动

以下是一个例子:

<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>

左300
前300名
这将替换VS生成的主窗口的内容


运行它并更改窗口的大小,将其最大化,您将看到滚动条出现和消失。

请您解释一下,“它创建了一个框”是什么意思?我不太明白。这意味着,当它周围的窗口扩展时,中间有一个固定的宽度区域,请把你的XAML张贴好吗?有趣的是窗口本身和它的直接子元素(ScrollViewer?),原来它是由cotnrols修复的宽度问题,谢谢!