0

我有一个小问题,我想用 C# 更改我的应用程序的背景。我试过这段代码:

var app = Application.Current as App;
var imageBrush = new ImageBrush
{
ImageSource = new BitmapImage(new Uri(imageName, UriKind.Relative))
};
app.RootFrame.Background = imageBrush;

但它不起作用,背景很暗..我试着做:

app.RootFrame.Background = new SolidColorBrush(Colors.Blue);

而且效果很好。所以我不明白问题出在哪里,我的图像是 480*800 像素,我将Build Action设置为Content并将Copy to Output Directory设置为Copy if newer

谢谢大家

4

3 回答 3

1

也许你可以试试

        var app = Application.Current as App;
        if (app == null)
            return;

        var imageBrush = new ImageBrush
        {
        };
        var uu = new BitmapImage(new Uri(imageName, UriKind.Relative));
        uu.CreateOptions = BitmapCreateOptions.None;
        imageBrush.ImageSource = uu;

        app.RootFrame.Background = imageBrush;

标记:uu.CreateOptions = BitmapCreateOptions.None;

于 2012-10-19T03:33:29.743 回答
0

我用图像成功地做了几乎完全相同的事情,除了我将图像设置为全景控件的背景。我知道其他人在这篇文章中遇到了同样的问题,所以我建议设置 LayoutRoot 或其他控件的背景,而不是 app.RootFrame。

于 2012-10-18T22:57:47.770 回答
0

谢谢你俩 !!

我之前曾分别尝试过这两种解决方案,但没有奏效。但它结合在一起完美无缺!

编码 :

var imageBrush = new ImageBrush
{
};
var uu = new BitmapImage(new Uri("/Images/image.png", UriKind.Relative));
uu.CreateOptions = BitmapCreateOptions.None;
imageBrush.ImageSource = uu;

LayoutRoot.Background = imageBrush;
于 2012-10-19T06:55:27.793 回答