StackPanel在物理设备上消失,但在Simulator中可见

时间:2014-07-22 08:21:45

标签: c# wpf xaml stackpanel

我使用StackPanel WPF控件创建了带图像的侧边栏。我已将模拟器设置为23''和1920x1080,该设备是42''分辨率也是1920x1080。在模拟器中,StackPanel是可见的,而在设备上则不可见。

XAML代码:

<StackPanel Height="1080" Margin="0,0,300,0" VerticalAligment="Top" Margin="1620,0,0,0"/>
...rest of StackPanel XAML code...

为什么会这样?为什么它消失了?

1 个答案:

答案 0 :(得分:1)

可能您可能需要使用其他一些技术来正确对齐,因为指定边距,宽度等属性可能会在不同设备上以不同方式计算

DPI and Device-Independent Pixels

了解详情

你可以尝试

<StackPanel Height="1080" VerticalAligment="Top" Width="300" HorizontalAlignment="Right"/>

或许更好的方法是使用网格正确对齐

<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition />
        <ColumnDefinition Width="300" />
    </Grid.ColumnDefinitions>
    <!--your content-->
    <StackPanel Grid.Column="1" />
</Grid>

您也可以选择定义尺寸单位,即英寸,以使尺寸在各种设备上保持一致

例如

<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition />
        <ColumnDefinition Width="2in" />
    </Grid.ColumnDefinitions>
    <!--your content-->
    <StackPanel Grid.Column="1" />
</Grid>

所以这将确保堆叠面板在每个设备上始终为2英寸