WPF:视图缩放到大尺寸的容器,小尺寸的滚动?
问题描述:
我正在构建一个描绘图的控件。控件的内容(相当复杂)将尽可能地扩展以适应分配的空间。但是,并非所有的比例都是有效的。内容不能无限缩小。例如。图上的框应该至少有20个像素宽。因此,如果窗口太小而不能适应内容,即使尺寸最小,缩放也应该停止,滚动条必须出现。WPF:视图缩放到大尺寸的容器,小尺寸的滚动?
我无法在WPF中找到这个优雅的解决方案。任何设计思路都非常感谢。
答
设置内容的Horizontal
& VerticalAlignment
到Stretch
也设置了MinWidth
和MinHeight
到合适的值,将您的内容在其ScrollViewer
Horizontal
& VerticalScrollBarVisibility
设置为Auto
。
这应该工作,也许......
例如,对于你的XAML的选择上即时查看器(例如Kaxaml):
<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<ScrollViewer HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto">
<Button
MinHeight="400"
MinWidth="400"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
Content="Buttons!"/>
</ScrollViewer>
</Window>
是的,你明白我的问题恰到好处。我不能直接使用你的例子,因为我有面板和一些测量,但你的回答让我意识到这一点:当你的面板在一个滚动查看器中,在测量时,你计算出最小可能的大小,让你生存下来,提供空间。因此,你计算你的布局两次。看起来很明显,但我第一次没有得到它。谢谢! – 2011-06-07 02:32:08
很高兴帮助:)顺便说一下,MSDN上有一些有趣的文章。 [布局系统](http://msdn.microsoft.com/en-us/library/ms745058.aspx)&[面板概述](http://msdn.microsoft.com/en-us/library/ms754152.aspx )。 – 2011-06-07 02:47:55