XAML:如何使堆叠面板填满屏幕? (WinRT的)

时间:2013-08-17 19:45:16

标签: c# xaml windows-store-apps winrt-xaml stackpanel

<StackPanel Orientation="Horizontal" Margin="10,43,0,0">
            <RichTextBlock x:Name="MYRTB" HorizontalAlignment="Center" VerticalAlignment="Top" Foreground="#FFEE0000" UseLayoutRounding="True">
                <Paragraph Foreground="#FFFD0000">
                    <Run Text="Testtest"/>
                </Paragraph>
            </RichTextBlock>
            <ListView x:Name="MyListViewNr1">
                <ListViewItem Content="ListView Entry 1"/>
                <ListViewItem Content="ListView Entry 2"/>
                <ListViewItem Content="ListView Entry 2888"/>
            </ListView>
        </StackPanel>

我试图让这个StackPanel填满我的WinRT应用程序的屏幕。我已经在使用宽度和高度的“自动”属性,但是当我向RichTextBlock添加Listview Entry或Paragraph足够长时,文本就会移出屏幕。

如果我对StackPanel使用垂直方向,则会自动调整WIDTH但不会调整高度,这意味着如果有列表视图条目,它们将只在屏幕下方。

实际上是否有办法通过XAML执行此操作,还是需要通过代码执行此操作(此处使用C#)。如果是这样,我如何访问我的应用程序的CURRENT宽度/高度,因为我想让它自动调整大小以适应不同的分辨率和方向(横向/纵向)。

提前谢谢!

2 个答案:

答案 0 :(得分:0)

如果你需要为windows 8提供类似hub(Content control for complex layout)的东西,你应该使用带有不同项目模板的GridView。例如:http://blogs.msdn.com/b/synergist/archive/2012/09/25/windows-store-app-xaml-gridview-with-variable-templates.aspx

答案 1 :(得分:0)

使用Grid而不是StackPanel

<Grid Margin="10,43,0,0">
            <RichTextBlock x:Name="MYRTB" HorizontalAlignment="Center"   VerticalAlignment="Top" Foreground="#FFEE0000" UseLayoutRounding="True">
                <Paragraph Foreground="#FFFD0000">
                    <Run Text="Testtest"/>
                </Paragraph>
            </RichTextBlock>
            <ListView x:Name="MyListViewNr1">
                <ListViewItem Content="ListView Entry 1"/>
                <ListViewItem Content="ListView Entry 2"/>
                <ListViewItem Content="ListView Entry 2888"/>
            </ListView>
  </Grid>

试试这个。