我试图在WP8设备上显示一个简单的全屏位图(Lumia 920)。
它有1280x768的屏幕,使用ScaleFactor 160,虚拟分辨率为800x480。
这是显示黑/白棋盘位图的结果(模糊):
显然,UseLayoutRounding
无处不在。
那么,嗯,是否可以在高分辨率Windows Phone 8设备上对位图进行像素对齐?
更新:在800x480模拟器上检查(800x480图像) - 非常清晰。 1280x768仿真器 - 模糊,与设备上相同:/
此外,使用viewport width=device-width
打开Web page with checkerboard background(注意:1280x768图像)会产生相同的模糊图像。这是否意味着除了使用Direct3D之外,没有办法在Lumia上获得清晰的全屏图像?
XAML:
<phone:PhoneApplicationPage
x:Class="PhoneRt.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d" d:DesignWidth="480" d:DesignHeight="768"
FontFamily="{StaticResource PhoneFontFamilyNormal}"
FontSize="{StaticResource PhoneFontSizeNormal}"
Foreground="{StaticResource PhoneForegroundBrush}"
SupportedOrientations="Portrait" Orientation="Portrait"
shell:SystemTray.IsVisible="True" UseLayoutRounding="True">
<Canvas x:Name="LayoutRoot">
<TextBlock x:Name="button">aaa</TextBlock>
<Image x:Name="viewport" UseLayoutRounding="True" Canvas.Left="0" Canvas.Top="0" Width="480" Height="800"></Image>
</Canvas>
</phone:PhoneApplicationPage>
缩放片段:
答案 0 :(得分:1)
我在模拟器中玩了一下。首先我认为这是因为你在后面的代码中设置了图像,但实际上系统托盘似乎是罪魁祸首。
可能是系统托盘从应用程序空间中切断的像素会使缩放变得混乱。如果您将系统托盘设置为有点透明,则用户无法看到,并且屏幕空间更大。对我来说,棋盘图形清晰,黑白。
尝试
shell:SystemTray.Opacity="0.99"
在您的XAML文件中。