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

Mar*_*kXA 2 winrt-xaml windows-8.1

我在Windows 8.1 XAML应用程序中使用Hub控件,我有一个Canvas控件,我想要适合其HubSection的可用高度.在HTML中,我可以将高度设置为100%,但我对如何在XAML中执行此操作感到困惑.有线索吗?

Kas*_*dum 8

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

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

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

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

    <Hub>
        <HubSection VerticalContentAlignment="Stretch">
            <DataTemplate>
                <Canvas
                    Background="Red"
                    Width="500">
                </Canvas>
            </DataTemplate>
        </HubSection>
    </Hub>
Run Code Online (Sandbox Code Playgroud)