我使用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...
为什么会这样?为什么它消失了?
答案 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英寸