Windows商店应用和TextBox拉伸问题,响应式设计

时间:2015-04-22 16:21:19

标签: xaml responsive-design windows-runtime windows-store-apps

我正在开发windows store应用程序,我对文本框拉伸有很大的问题。我希望有响应式设计,这意味着我使用了很多GridsVerticalAlignment="Stretch"以及HorizontalAlignment="Stretch"

问题发生在TextBoxes中的FontSize是相同的并且未与中心对齐。这就是为什么我使用ViewBox

但不允许ViewBox在网格单元格中拉伸和填充空间。

<Viewbox Grid.Row="1" 
    Grid.Column="1" 
    HorizontalAlignment="Stretch" 
    VerticalAlignment="Stretch" >
    <TextBox HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch"
        Text="{Binding Name, Mode=TwoWay}" 
        HorizontalAlignment="Stretch" 
        VerticalAlignment="Stretch"/>
</Viewbox>

我可以使用一些硬编码的尺寸,但是在各种类型的分辨率下,我都迫不及待地想让我的UI适合所有类型的设备。

我也尝试根据实际屏幕尺寸计算尺寸,但这种方法非常麻烦。

  • 你知道如何解决这个问题吗?
  • 在Windows应用商店应用中进行自适应设计的最佳方式是什么?
  • 你不知道第三方TextBox控件更像是原生的winRT控件吗?
  • 使用ViewBox进行离散控制是一种好方法,还是最好将ViewBox用于整个屏幕并设置硬编码尺寸?

1 个答案:

答案 0 :(得分:0)

水平或垂直拉伸TextBox控件,不会拉伸其中的文本,这只会导致Control调整大小以填充可用空间并在其中显示更多文本。字形大小仍然仅依赖于FontSize属性。

如果要水平对齐TextBox内容,请将TextAlignment属性设置为Horizo​​ntalAlignment.Center。如果要垂直对齐TextBox内容,遗憾的是没有VerticalTextAlignment,但您可以将VerticalAlignment设置为VerticalAlignment.Center(而不是Stretch),以便TextBox垂直放置在它的容器中间。 / p>

为了设计适合所有类型设备的app,您可以查看MSDN中的指南:

我的个人经验是,设计多种尺寸并不意味着您根本不必硬化任何尺寸,或者您需要拉伸文本框的内容。更重要的是以不同的方式重新定位,隐藏/显示元素。看看内置的Windows Metro应用程序(现在通用)以及它们在不同大小上的行为方式。