我正在关注this MSDN文章,以便在Windows Phone 8中创建与分辨率相关的背景,但它始终显示空白背景。
任何人都知道它有什么问题吗?有人有任何替代解决方案吗?
答案 0 :(得分:1)
public enum Resolutions { WVGA, WXGA, HD720p, HD };
private static bool IsWvga
{
get
{
return App.Current.Host.Content.ScaleFactor == 100;
}
}
private static bool IsWxga
{
get
{
return App.Current.Host.Content.ScaleFactor == 160;
}
}
private static bool Is720p
{
get
{
return App.Current.Host.Content.ScaleFactor == 150;
}
}
private static bool IsHD
{
get
{
return App.Current.Host.Content.ScaleFactor == 150;
}
}
将其添加到类的顶部,并使用这些静态变量来设置特定于分辨率的图像。你说你想设置“依赖于分辨率的背景”,我从中了解你想要在背景上设置一些图像?如果您希望图片显示在页面背景中,请将ImageBrush
网格的LayoutRoot
设置为特定分辨率图像(480x800.jpg,720x1280.jpg等)
ImageBrush image = new ImageBrush();
if (IsWvga)
{
//set your bitmap
}
else if (IsWxga)
{
//set your bitmap
}
else if (Is720p)
{
//set your bitmap
}
else if(IsHD)
{
//set your bitmap
}
image.Stretch = Stretch.UniformToFill;
LayoutRoot.Background = image;
OR
如果您希望屏幕UI元素符合分辨率,则在XAML中将UI元素的height
设置为auto
,或者在{{上设置UI元素的分辨率特定高度1}}您的网页事件。这可能是您的页面的任何随机网格,需要适合
OnNavigatedTo
答案 1 :(得分:0)
MSDN文章在MultiResImageChooser
课程中出错,MultiResImageChooser
被写为MultiResImageChooserUri
&相对URI缺少前导斜杠。正确的课程如下。
public class MultiResImageChooser
{
public Uri BestResolutionImage
{
get
{
switch (ResolutionHelper.CurrentResolution)
{
case Resolutions.HD:
return new Uri("/Assets/MyImage.screen-720p.jpg", UriKind.Relative);
case Resolutions.WXGA:
return new Uri("/Assets/MyImage.screen-wxga.jpg", UriKind.Relative);
case Resolutions.WVGA:
return new Uri("/Assets/MyImage.screen-wvga.jpg", UriKind.Relative);
default:
throw new InvalidOperationException("Unknown resolution type");
}
}
}
}