2011-06-07 110 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