2016-09-04 17 views
4

私はしばらく検索してきましたが、正直なところ私はこの単純な問題を解決しませんでした。私はフライアウトメニューを持っており、フライアウトメニュー項目にイベントを添付しています。私は、項目を選択すると、私のXAMLページの背景イメージをプログラム的に変更したいと思います。UWPプログラムによってXAMLページの背景イメージを変更するC#

<Grid x:Name="main"> 
    <Grid.Background> 
     <ImageBrush Stretch="Fill" ImageSource="Assets/bg_1.jpg"/> 
    </Grid.Background> 
</Grid> 

これはバックグラウンドとして(グリッドは基本的にページ全体である)デフォルト画像です。

C#のイベントコードはここにある:

private void MenuFlyoutItem_Click(object sender, RoutedEventArgs e) 
{ 
    main.Background = new ImageBrush { ImageSource = new BitmapImage(new Uri("ms-appx:///MTG Life Counter/Assets/bg_2.jpg")) , Stretch = Stretch.None}; 
} 

私が代わりに背景として画像を設定するメニュー項目を選択すると、それは白になります。

Default background

私がテストし、それはイメージの問題ではありません。私は明らかなミスのようなことをしていることを知っていますが、私はUWPに少し新しく、解決策を見つけることができませんでした。

Here is the blank background after I select to change it

あなたの時間をありがとうと無知のために申し訳ありません。

答えて

2

"BaseUri"というプロパティがあります...あなたのコードに追加してみてください。

は、次の変更を行います。

private void MenuFlyoutItem_Click(object sender, RoutedEventArgs e) 
    { 
     main.Background = new ImageBrush { ImageSource = new BitmapImage(new Uri(this.BaseUri, "Assets/bg_2.jpg")), Stretch = Stretch.None }; 
    } 
+0

残念ながら、問題はまだ同じです。空白の背景。私もUriKind.RelativeOrAbsoluteを試しましたが、何の違いもありません。 –

+0

はい。私はそれらの2つの答えのpossibileの組み合わせを試しました –

+0

UriKind.RelativeOrAbsoluteメソッドはUWPプロジェクトでは使用していません(wpfの世界のメソッドです)...あなたのプロジェクトに画像を追加しましたか? –

関連する問題