wp7如何在后台修改前台的grid的背景

最近做一个项目,需要在后台支持修改前台背景。

想了一下,去论坛提问了,有人给了解决方案。还是挺有意思的。记录下来分享。

首先,在前台给ImageBrush命名一个X:Name,方便后台调用。例如:

<Grid x:Name="LayoutRootPivot">
        <Grid.Background>
            <ImageBrush x:Name="PivotImage" Stretch="Fill" />
        </Grid.Background>


然后,在后台修改它的ImageSource。这里我遇到一个问题,不知道给ImagesSource赋什么类型的值。后来去MSDN查了一下,

有这么一段话:

可在 XAML 中设置此属性,但在这种情况下,会将 ImageSource 属性设置为 URI。此行为取决于基础类型转换,该转换将字符串作为 URI 处理,并调用 BitmapImage(Uri) 构造函数。这样接下来会从该 URI 请求流,并返回图像源对象。

所以我就试着这样写:

PivotImage.ImageSource =new BitmapImage(new Uri("/Images/Background.jpg“));

运行没问题,但是找不到图片,没任何显示。于是我又想了一下。发现我我忘记了告诉系统路径是绝对还是相对,

然后改为这样:

PivotImage.ImageSource =new BitmapImage(new Uri("/Images/Background.jpg",UriKind.RelativeOrAbsolute));

运行,成功了。

原文地址:https://www.cnblogs.com/dieaz5/p/2934026.html