-1

我正在关注这篇MSDN 文章在 Windows Phone 8 中创建与分辨率相关的背景,但它始终显示空白背景。

有人知道它有什么问题吗?有人有任何替代解决方案吗?

4

2 回答 2

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您的LayoutRootGrid 设置为像这样的分辨率特定图像(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;
        }
于 2013-11-11T11:06:44.753 回答
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");
            }
        }
    }
}
于 2013-11-12T13:19:48.193 回答