在 XAML 中,两个堆栈面板叠加在一个网格中

Posted

技术标签:

【中文标题】在 XAML 中,两个堆栈面板叠加在一个网格中【英文标题】:In XAML two stackpanels overlay in a grid 【发布时间】:2016-06-16 19:12:21 【问题描述】:

我的 Windows 手机上有这个 XAML:

<phone:PanoramaItem Header="Binding LocalizedResources.balance, Source=StaticResource LocalizedStrings">
            <StackPanel Margin="15,0,0,0" >
                <ScrollViewer HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto">
                    <Grid>
                        <StackPanel x:Name="AccountsInfo" Grid.Column="1">
                        </StackPanel>
                        <StackPanel Grid.Column="2">
                            <local:RateChart x:Name="rateChart" Height="324" Margin="-12,25,0,0" Width="417" />
                        </StackPanel>
                    </Grid>
                </ScrollViewer>
            </StackPanel>
        </phone:PanoramaItem>

在 AccountsInfo Stackpanel 中,我以编程方式添加了 5 个帐户,RateChart 是一个图表。但是,我的汇率图表应该在所有账户下方,并且目前它位于屏幕顶部并覆盖第一个账户。我不知道如何进行定向。

感谢大家的回答。

【问题讨论】:

【参考方案1】:

在我看来,你所需要的就是这样的东西。我们摆脱了不必要的面板,实际上指定您的第二个StackPanel 需要将它定位在父级Grid 中,同时放弃其他属性上的一些不必要的值。希望这会有所帮助。

<phone:PanoramaItem Header="Binding LocalizedResources.balance, Source=StaticResource LocalizedStrings">            
   <ScrollViewer HorizontalScrollBarVisibility="Auto" 
                 VerticalScrollBarVisibility="Auto">
      <Grid>
         <Grid.RowDefinitions>
            <RowDefinition Height="Auto">
            <RowDefinition Height="Auto">
         </Grid.RowDefinitions>
         <StackPanel x:Name="AccountsInfo">
         </StackPanel>
         <StackPanel Grid.Row="1">
            <local:RateChart x:Name="rateChart" 
                             Width="417"
                             Margin="0,25,0,0" />
         </StackPanel>
      </Grid>
   </ScrollViewer>
</phone:PanoramaItem>

【讨论】:

以上是关于在 XAML 中,两个堆栈面板叠加在一个网格中的主要内容,如果未能解决你的问题,请参考以下文章

如何使堆栈面板内的按钮展开以占用整个空间?

在 XAML 中创建按钮

折叠堆栈面板时从网格中删除空间

WPF - 如何在标签导航中跳过标签?

如何使网格叠加中的所有图像齐平?

XAML 绑定到 CompositeCollection