2

我正在编写一个 Windows Phone 8 应用程序,但我遇到了一些 UI 问题。我想要一个可以拉伸到整个屏幕宽度的控件,并将其子控件水平流动(以填充空间)。

目前,我有一个方向 = 水平的 StackPanel,但它不允许子控件(滑块)有一个 Horizo​​ntalAlignment=Stretch(实际上是拉伸)。我可以手动拉伸滑块,但我不想硬编码大小..

这是代码:

<StackPanel Orientation="Horizontal">
    <TextBlock Text="Hue Bins"  />
    <Slider x:Name="HueBins" VerticalAlignment="Bottom" HorizontalAlignment="Stretch"  Value="24" Maximum="36" Minimum="1"/>
</StackPanel>

和结果图像:

在此处输入图像描述

在普通的 WPF 中,有 Dockpanel 控件,但对于 WP8 似乎不存在。反正有模仿这种行为吗?

4

2 回答 2

7

您可以使用Grid两列:

<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="Auto"/>
        <ColumnDefinition Width="*"/>
    </Grid.ColumnDefinitions>
    <TextBlock Text="Hue Bins"  />
    <Slider x:Name="HueBins" Grid.Column="1" VerticalAlignment="Bottom" HorizontalAlignment="Stretch" Value="24" Maximum="36" Minimum="1"/>
</Grid>
于 2013-01-28T21:34:30.517 回答
0

您可以在此处尝试从 Silverlight Toolkit 中提取的版本,以及他们为 WP7 http://www.geekchamp.com/articles/using-dockpanel-in-wp7所做的一些调整

或使用整个 Silverlight 工具包,如果你需要更多的东西 http://silverlight.codeplex.com/ (因为从它派生的 Windows Phone 工具包似乎不包含 DockPanel)

有关编译 DockPanel 所需内容的一些信息(但下载链接已损坏)位于http://matthiasshapiro.com/2010/06/28/using-wrappanel-and-dockpanel-in-windows-phone-7-with-blend /

更新:我使用上面提到的信息来设置http://DockPanel.codeplex.com。它工作正常,除了所有顶部/左侧/右侧/底部/中间项目都在布局中添加在一起的情况,至少在 Windows Phone 上它在这种情况下做了一些错误的布局

于 2015-01-17T15:44:10.853 回答