我正在关注这篇MSDN 文章在 Windows Phone 8 中创建与分辨率相关的背景,但它始终显示空白背景。
有人知道它有什么问题吗?有人有任何替代解决方案吗?
我正在关注这篇MSDN 文章在 Windows Phone 8 中创建与分辨率相关的背景,但它始终显示空白背景。
有人知道它有什么问题吗?有人有任何替代解决方案吗?
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
Grid 设置为像这样的分辨率特定图像(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;
或者
如果您希望您的屏幕 UI 元素适合分辨率,则将height
您的 UI 元素设置为XAML,或在页面事件auto
上设置您的 UI 元素的分辨率特定高度。OnNavigatedTo
这可能是您页面的任何需要适合的随机网格
if (IsWvga)
{
grid.Height = 500;
}
else if (IsWxga)
{
grid.Height = 600;
}
else if (Is720p)
{
grid.Height = 700;
}
else if (IsHD)
{
grid.Height = 800;
}
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");
}
}
}
}