如何在WPF中保持可缩放、可滚动内容的纵横比?

16 浏览
0 Comments

如何在WPF中保持可缩放、可滚动内容的纵横比?

我对WPF还相对陌生,遇到了一个看起来有点棘手的问题。基本上,我想要一个可缩放的4x4网格,但保持正方形(或其他任意)的长宽比。这实际上似乎很难做到,这让我感到惊讶,因为我认为这是一个相当常见的需求。

我开始定义一个Grid,如下所示:

...

现在,如果将其设置为Stretch,它可以填充窗口或任何放置它的容器。行和列是均匀的,但长宽比不固定。

然后我尝试将其放入StackPanel中以利用可用空间。但没什么帮助。当我记起Viewboxes时,我离目标又近了一步。

...

现在,我的内容可以按比例缩放。问题是,如果窗口不够宽,我的一些网格就会超出屏幕。如果情况是这样,我希望能够滚动到它。同样,我可能需要一个最小尺寸,这可能导致垂直滚动。

我尝试将我的StackPanel和Grid(分别)放入一个合适的ScrollViewer容器中,但这样内容就不再按比例缩放以适应窗口了。它会变成全尺寸,这不好。

那么我该如何解决这个问题呢?我是在错误的方向上努力吗?有没有更好/更简单的方法?

0