2011-06-07 111 views
0

我正在构建一个描绘图的控件。控件的内容(相当复杂)将尽可能地扩展以适应分配的空间。但是,并非所有的比例都是有效的。内容不能无限缩小。例如。图上的框应该至少有20个像素宽。因此,如果窗口太小而不能适应内容,即使尺寸最小,缩放也应该停止,滚动条必须出现。WPF:视图缩放到大尺寸的容器,小尺寸的滚动?

我无法在WPF中找到这个优雅的解决方案。任何设计思路都非常感谢。

回答

0

设置内容的Horizontal & VerticalAlignmentStretch也设置了MinWidthMinHeight到合适的值,将您的内容在其ScrollViewerHorizontal & 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> 
+0

是的,你明白我的问题恰到好处。我不能直接使用你的例子,因为我有面板和一些测量,但你的回答让我意识到这一点:当你的面板在一个滚动查看器中,在测量时,你计算出最小可能的大小,让你生存下来,提供空间。因此,你计算你的布局两次。看起来很明显,但我第一次没有得到它。谢谢! – 2011-06-07 02:32:08

+0

很高兴帮助:)顺便说一下,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