如何通过Windows手机上的代码设置背景图像?

时间:2014-11-03 13:05:12

标签: windows-phone-8 background

我的问题非常简单,但我找不到有效的解决方案。

我编写了一个Windows Phone应用程序,我必须更改背景。更改取决于应用程序上的用户配置文件。如果用户是男性,则应用程序显示蓝色背景,如果她是女性,则为粉红色背景。

我试图绑定背景但我仍然有一个闪烁效果(黑色到背景图像)。 当应用程序在两个页面之间导航时非常明显,但在同一页面上进行更改时不可见。

我也尝试了这些解决方案,但背景保持黑色:

string uri = String.Format("/Assets/Background{0}.png", App.Context.SelectedUser.IsMan ? "Boy" : "Girl");
        var imageBrush = new System.Windows.Media.ImageBrush
        {
            ImageSource = new BitmapImage(new Uri(uri, UriKind.Relative))
        };
        this.Background = imageBrush;



string uri = String.Format("/Assets/Background{0}.png", App.Context.SelectedUser.IsMan ? "Boy" : "Girl");
        var imageBrush = new System.Windows.Media.ImageBrush
        {
            ImageSource = new BitmapImage(new Uri(uri, UriKind.Relative))
        };
        App.RootFrame.Background = imageBrush;

我尝试使用.jpg和.png图像文件但没有效果。

我的代码错了吗? 有人有建议吗?

非常感谢: - )

1 个答案:

答案 0 :(得分:2)

此代码适用于Windows Phone 8中的空白silverlight应用程序。

在Xaml中:

<Grid x:Name="LayoutRoot" >
    <Grid.Background>
        <ImageBrush ImageSource="/Assets/boy.png" Stretch="UniformToFill" />
    </Grid.Background>
    <Button Content="Change" Click="Button_Click" />
</Grid>

并在后面的代码中:

    private void Button_Click(object sender, RoutedEventArgs e)
    {
        System.Windows.Media.Imaging.BitmapImage bmp = new System.Windows.Media.Imaging.BitmapImage();
        bmp.UriSource = new Uri("/Assets/girl.png", UriKind.Relative);

        var imageBrush = new System.Windows.Media.ImageBrush
        {
            ImageSource = bmp
        };

        LayoutRoot.Background = imageBrush;
    }