如何处理ViewBox

时间:2013-10-01 13:38:41

标签: xaml windows-runtime microsoft-metro viewbox

我遇到处理不同屏幕尺寸的问题,问题是文字!

我有下一节:

这是显示1024x768

1024x768

这是显示2560x1440

2560x1440

在Stack上有人给我提示ViewBox可以帮助我解决这个问题,好吧,我试试这个:

但是这是什么?

Example

当文字不适合时,它会缩小 - 这很好,但如何告诉其他(同级元素)采用相同的缩小级别?

换句话说,我希望所有文字的大小相同。

<Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}">
    <Grid.ColumnDefinitions>
        <ColumnDefinition/>
        <ColumnDefinition/>
        <ColumnDefinition/>
        <ColumnDefinition/>
    </Grid.ColumnDefinitions>
    <Grid.RowDefinitions>
        <RowDefinition/>
        <RowDefinition Height="9*"/>
    </Grid.RowDefinitions>
    <Image HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Source="arrow_step_1.png" Stretch="Fill" />
    <Image Grid.Column="1" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Source="arrow_step_1.png" Stretch="Fill"/>
    <Image Grid.Column="2" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Source="arrow_step_1.png" Stretch="Fill"/>
    <Image Grid.Column="3" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Source="arrow_step_1.png" Stretch="Fill"/>
    <Viewbox>
    <TextBlock HorizontalAlignment="Center" VerticalAlignment="Center" Text="One" FontSize="20"/>
    </Viewbox>
    <Viewbox Grid.Column="1">
        <TextBlock Grid.Column="1" HorizontalAlignment="Center" VerticalAlignment="Center" Text="Two" FontSize="20"/>
        </Viewbox>
    <Viewbox Grid.Column="2">
        <TextBlock Grid.Column="2" HorizontalAlignment="Center" VerticalAlignment="Center" Text="Threeeeeeeeeee" FontSize="20"/>
        </Viewbox>
    <Viewbox Grid.Column="3">
        <TextBlock Grid.Column="3" HorizontalAlignment="Center" VerticalAlignment="Center" Text="Four" FontSize="20"/>
        </Viewbox>
</Grid>

1 个答案:

答案 0 :(得分:0)

尝试将您的ViewBox置于根级别,但它应该看起来像这样:

 <ViewBox>
   <Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}">
     ...
   </Grid>
 </ViewBox>

您可能想要使用Stretch的{​​{1}}属性来实现所需的结果。但我想要使用ViewBox选项。

我一直在为我的游戏和应用程序使用这种方法来适应不同的屏幕比例和大小。