我的问题非常简单,但我找不到有效的解决方案。
我编写了一个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图像文件但没有效果。
我的代码错了吗? 有人有建议吗?
非常感谢: - )
答案 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;
}