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

发布于 2024-08-22 19:53:24 字数 255 浏览 5 评论 0原文

这应该是一个非常简单的任务,但由于某种原因我在 WPF 中遇到了很多问题。

这就是我想要发生的事情: 我的窗口中有很多控件,包括扩展器控件。当内容扩展到可见区域下方时,我希望该窗口有滚动条。另外,窗口的宽度不是固定的,它可以最大化、调整大小等。

我尝试将 ScrollViewer 作为窗口中的第一个元素,但它无法正常工作。如果我将高度和宽度设置为“自动”,它不会滚动,如果我将其设置为特定延迟,它会在窗口最大化时创建一个框。

任何帮助将不胜感激!

This should be a very simple task, but for some reason I'm running into a lot of problems with it in WPF.

This is what I want to happen:
I have a bunch of controls in a window, including expander controls. I want to have scroll bars for that window, when content expands below the visible area. Also, the window is not of fixed width, it can be maximized, resized, etc.

I tried putting a ScrollViewer as the first element in the window, but it's not working correctly. If I set the height and width to Auto, it doesn't scroll and if i set it to spefic detentions, it creates a box when the window is maximized.

Any help would be greatly appreciated!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

↘人皮目录ツ 2024-08-29 19:53:24

我假设您有一些固定宽度问题。如果您提供 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>

I'm assuming that you have some fixed width issues. If you provide a sample of your XAML I can see if I can help further. The following works without showing a box:

<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>
若无相欠,怎会相见 2024-08-29 19:53:24

您应该将 ScrollViewer 的 Horizo​​ntalScrollBarVisibility 和 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生成的主窗口的内容。

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

You should set the HorizontalScrollBarVisibility and the VerticalScrollBarVisibility of the ScrollViewer to Auto.

Here is an example:

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

This replaces the content of the main window generated by VS.

Run it and change the size of the window, maximize it and you'll scroll bars appearing and disappearing.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文