2012-05-29 25 views
3

我有一個多xaml metro應用程序。我想通過按鈕點擊在xaml之間切換。Metro UI:我正在切換xaml,但圖像未加載

private void Button_Click_1(object sender, RoutedEventArgs e) 
    { 
     Window.Current.Content = new BlankPage1(); 
     this.InitializeComponent(); 
    } 

    private void Button_Click_2(object sender, RoutedEventArgs e) 
    { 
     Window.Current.Content = new Sudoku.sudoku(); 
     Window.Current.Activate();    
    } 

    private void Button_Click_3(object sender, RoutedEventArgs e) 
    { 
     TextTwist.text_twist ob= new TextTwist.text_twist(); 
     ob.InitializeComponent(); 
     Window.Current.Content = ob;   
    } 

這是主xaml有按鈕的邏輯代碼。 現在當我點擊button1(/ button2/button3)時,相應的xaml出現在屏幕上,但相關圖像未加載。 它們在設計師中完全可見。

請幫我一把。

這裏是XAML的1摘錄

<Grid x:Name="gridMain"> 
    <Grid.Background> 
     <ImageBrush ImageSource="Assets/textTwist/blue_back.png"/> 
    </Grid.Background> 
    <ListView x:Name="lv" HorizontalAlignment="Left" Height="565" Margin="49,99,0,0" VerticalAlignment="Top" Width="315" SelectionChanged="ListView_SelectionChanged_1" Opacity="0.95" FontSize="128"> 
     <ListView.Background> 
      <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"> 
       <GradientStop Color="Black" Offset="1"/> 
       <GradientStop Color="#FF9CF147" Offset="0.261"/> 
      </LinearGradientBrush> 
     </ListView.Background> 
    </ListView> 
    <TextBox x:Name="txtblk" HorizontalAlignment="Left" Margin="436,207,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Height="126" Width="731" FontSize="72" AcceptsReturn="True" FontWeight="Bold" BorderThickness="0" Foreground="#FFF01D1D" CharacterSpacing="120"> 
     <TextBox.Background> 
      <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"> 
       <GradientStop Color="Black"/> 
       <GradientStop Color="White" Offset="0.874"/> 
      </LinearGradientBrush> 
     </TextBox.Background> 
    </TextBox> 
    <Button x:Name="btnSubmit" Content="Submit Word" HorizontalAlignment="Left" Margin="874,479,0,0" VerticalAlignment="Top" Width="293" Click="btnSubmit_Click" Height="96" FontSize="36" FontWeight="Normal" FontFamily="Segoe Print"> 
     <Button.Background> 
      <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"> 
       <GradientStop Color="Black"/> 
       <GradientStop Color="#FF7DE09C" Offset="0.926"/> 
      </LinearGradientBrush> 
     </Button.Background> 
    </Button> 
    <Image x:Name="imgWrong" HorizontalAlignment="Left" Height="277" Margin="436,433,0,0" VerticalAlignment="Top" Width="280" Source="Assets/textTwist/wronganswer.png" Stretch="UniformToFill" Visibility="Collapsed"/> 
    <Image x:Name="imgRight" HorizontalAlignment="Left" Height="277" Margin="436,433,0,0" VerticalAlignment="Top" Width="280" Source="Assets/textTwist/rightanswer.png" Visibility="Collapsed"/> 
    <Image HorizontalAlignment="Left" Height="146" Margin="480,28,0,0" VerticalAlignment="Top" Width="624" Source="Assets/textTwist/text-twist-turbo-art.jpg" Stretch="UniformToFill"/> 
</Grid> 

的關聯圖像是所述網格背景的圖像,按鈕圖像等

+1

你是什麼意思的相關圖像?你的意思是這些控件中的佈局顯示,但圖像不?圖像如何配置?它只是?如果是這樣 - 這看起來像是WinRT中的一個bug。您可以等待幾天,以查看它是否在發佈預覽中得到修復或尋找解決方法 - 例如使用框架和頁面控件而不是更改根元素。 –

+1

你可以製作一個小的repro頁面併發布XAML嗎? –

回答

10

設定圖像源的格式MS-應用程序數據或MS-APPX

<Image Source="ms-appdata:///local/myFileNotInTheAppPackage.png"/> 

<Image Source="ms-appx:///Assets/myFilePartOfMyAppPackage.png"/> 
+1

我有類似的問題。通過添加ms-appx:/// Assets ...問題已解決。奇怪的是,一個完全獨立的項目我不需要使用ms-appx。不知道有什麼區別。有人知道嗎? (我投了票,因爲它爲我工作) – Thomas

+0

這是令人驚訝的正確答案! – Calanus