适合控制Windows 8 Hub(XAML)的高度

时间:2014-03-23 12:03:41

标签: winrt-xaml windows-8.1

我在Windows 8.1 XAML应用程序中使用Hub控件,并且我有一个Canvas控件,我想要适应其HubSection的可用高度。在HTML中,我可以将高度设置为100%,但我很难知道如何在XAML中执行此操作。有线索吗?

1 个答案:

答案 0 :(得分:8)

一般来说,对于XAML,如果您希望任何UIElement水平和/或垂直填充它的父级,您可以使用Horizo​​ntalAlignment和VerticalAlignment属性。通过将这两个属性设置为拉伸,元素将完全填充它的父级。

但是,某些控件会根据其内容(例如StackPanel)确定其大小。如果你在StackPanel中说了一个空Grid,那么StackPanel的结果大小是(0,0)。

弄清楚什么阻止您的内容按需显示自己可能会很麻烦。找出正在发生的事情的最好方法是深入了解您正在使用的控件的模板。

在与Hub / HubSection相关的情况下,您需要告诉HubSection它所托管的内容应该垂直拉伸。然后,您可以手动控制元素的宽度并将其设置为VerticalAlignment to Stretch。

    <Hub>
        <HubSection VerticalContentAlignment="Stretch">
            <DataTemplate>
                <Canvas
                    Background="Red"
                    Width="500">
                </Canvas>
            </DataTemplate>
        </HubSection>
    </Hub>