WPF:大尺寸可缩放到容器,小尺寸可滚动的视图?

WPF:大尺寸可缩放到容器,小尺寸可滚动的视图?,wpf,layout,scroll,size,containers,Wpf,Layout,Scroll,Size,Containers,我正在构建一个描绘图表的控件。控件的内容(相当复杂)将尝试进行缩放,以尽可能适合分配的空间。然而,并非所有量表都有效。内容不能无限缩小。例如,图表上的方框宽度应至少为20像素。因此,当窗口太小,即使是最小大小也无法容纳内容时,缩放应该停止,滚动条必须出现 我无法在WPF中找到一个优雅的解决方案。非常欣赏任何设计理念。将内容的水平和垂直对齐设置为拉伸,但也将最小宽度和最小高度设置为适当的值,将内容放在ScrollViewer中,其Horizontal和VerticalScrollBarVisibi

我正在构建一个描绘图表的控件。控件的内容(相当复杂)将尝试进行缩放,以尽可能适合分配的空间。然而,并非所有量表都有效。内容不能无限缩小。例如,图表上的方框宽度应至少为20像素。因此,当窗口太小,即使是最小大小也无法容纳内容时,缩放应该停止,滚动条必须出现


我无法在WPF中找到一个优雅的解决方案。非常欣赏任何设计理念。

将内容的
水平
垂直对齐设置为
拉伸
,但也将
最小宽度
最小高度
设置为适当的值,将内容放在
ScrollViewer
中,其
Horizontal
VerticalScrollBarVisibility
设置为
Auto

这应该行得通,也许

例如:

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

是的,你完全理解我的问题。我不能直接使用你的例子,因为我有面板和一些测量,但你的回答让我意识到:当你的面板在滚动查看器中时,测量后,你计算出允许你生存的最小可能大小,而在安排时,你用完了提供的空间。因此,您需要计算布局两次。这似乎是显而易见的,但我第一次没有明白。谢谢很高兴有帮助:)顺便说一句,MSDN上有一些有趣的文章,例如&。