C# 如何实现仅增长的ScrollViewer

C# 如何实现仅增长的ScrollViewer,c#,wpf,C#,Wpf,我想要一个stackpanel,它会在达到最小窗口大小后滚动,但在窗口水平增长时会扩展 如果我将堆栈面板放入窗口并锚定它,我可以使grow功能正常工作,但之后我无法滚动 如果我使用scrollViewer,那么我会得到滚动条,但堆栈面板永远不会水平增长 基本上我只需要一个与WinForms AutoSizeMode等效的 <Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

我想要一个stackpanel,它会在达到最小窗口大小后滚动,但在窗口水平增长时会扩展

如果我将堆栈面板放入窗口并锚定它,我可以使grow功能正常工作,但之后我无法滚动

如果我使用scrollViewer,那么我会得到滚动条,但堆栈面板永远不会水平增长

基本上我只需要一个与WinForms AutoSizeMode等效的

<Window
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
         xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
         xmlns:views="clr-namespace:Miner.Responder.Explorer.IncidentReview.Views"
         x:Class="Miner.Responder.Explorer.IncidentReview.Views.IncidentReviewForm"
         mc:Ignorable="d" Height="1069.2" Width="1096">
<ScrollViewer Margin="0,0,2,1" VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto">
    <StackPanel Height="1018" Width="1080" RenderTransformOrigin="0.5,0.5">
        <StackPanel.RenderTransform>
            <TransformGroup>
                <ScaleTransform/>
                <SkewTransform AngleX="0.057"/>
                <RotateTransform/>
                <TranslateTransform X="0.499"/>
            </TransformGroup>
        </StackPanel.RenderTransform>
        <views:IncidentReviewView x:Name="ucIncident" Height="532" Margin="38,0" Width="Auto"/>
        <views:TimeEditor x:Name="ucTimes" Height="166" Margin="38,0" Width="Auto"/>
        <views:HistoryTables x:Name="ucHistory" Height="287"/>
        <Grid Height="30">
            <Button x:Name="BtnOk" Content="OK" Margin="0,0,6,2" RenderTransformOrigin="-0.36,0.558" VerticalAlignment="Bottom" HorizontalAlignment="Right" Width="75" />
            <Button x:Name="BtnCancel" Content="Cancel" HorizontalAlignment="Right" Margin="0,0,166,2" VerticalAlignment="Bottom" Width="76" IsCancel="True" IsDefault="True"/>
            <Button x:Name="BtnSave" Content="Save" HorizontalAlignment="Right" Margin="0,0,86,2" VerticalAlignment="Bottom" Width="75"/>
        </Grid>
    </StackPanel>
</ScrollViewer>


首先,在这是一个完整的问题之前,您需要发布代码。您需要固定stackpanel的高度,否则它将在scrollviewer中永远增长。我想它已经修好了。高度=1018我会使用DockPanel而不是StackPanel,我发现它更容易控制。这个答案也有一个类似的问题,他们似乎更关心垂直增长。我认为我的问题是,我不能将堆栈面板锚定到scrollviewer,因此堆栈面板不会随着scrollviewer水平增长。首先,在这是一个完整的问题之前,您需要发布代码。您需要固定堆栈面板的高度,否则它将在scrollviewer中永远增长。我想它已经修好了。高度=1018我会使用DockPanel而不是StackPanel,我发现它更容易控制。这个答案也有一个类似的问题,他们似乎更关心垂直增长。我认为我的问题是我不能将堆栈面板锚定到scrollviewer,因此堆栈面板不会随着scrollviewer水平增长。