2015-10-15 15 views
5

Sto tentando di aggiungere un'immagine come sfondo di un controllo utente. A seconda del valore di una variabile, ho bisogno di cambiare quello sfondo, ma qualunque sia il percorso o il formato Uri che uso, lo sfondo non cambia.Allega immagine/ImageBrush dal codice sottostante

Ho visto molte domande qui in StackOverflow ma nessuna risolve il mio singolo problema. Ho lasciato il codice qui sotto:

  if (callback.liveUvis.ContainsUVI(uvi)) 
      { 
       this.Status.Text = "LIVE"; 


       ImageBrush imgB = new ImageBrush(); 
       BitmapImage btpImg = new BitmapImage();      
       btpImg.UriSource = new Uri(@"///IMG///Live///bck_frame_info_video_live.png", UriKind.Relative); 
       //imgB.ImageSource = new BitmapImage(new Uri("~/IMG/Live/bck_frame_info_video_live.png", UriKind.RelativeOrAbsolute)); 
       //imgB.ImageSource = new BitmapImage(new Uri("ms-appx:///IMG/Live/bck_frame_info_video_live.png")); 
       imgB.ImageSource = btpImg; 
       this.Background = imgB; 
      } 

sto affrontando lo stesso problema quando si cerca di allegare un'immagine ... credo che sia fino al formato Uri anche, ma ho lasciato il codice anche nel caso in cui:)

private void setIcon_Desc(string dd) 
    { 
     try 
     { 
      Image img = new Image(); 
      img.Source = new BitmapImage(new Uri(this.BaseUri, "IMG/pictos_small/white/160dpi/" + dd + ".png")); 
      img.Stretch = Stretch.None; 
      this.Icon = img; 
      this.Sport.Text = callback.disc.getDescription(dd).ToUpper(); 
     } 
     catch(Exception ex) 
     { 
      callback.exception.writeExceptions(ex); 
     } 

    } 

Grazie in anticipo!

+0

è l'immagine incluso nel progetto? Assicurati che l'azione di compilazione sia impostata su "Contenuto" –

+0

@KooKiz sì, ho una cartella con sottocartelle e immagini nel progetto (sono consapevole che in Android non è possibile usare le immagini se sono nella sottocartella, ignoro se è lo stesso per UWP ...). Quando dici "Assicurati che l'azione di compilazione sia impostata su" Contenuto "" intendi l'immagine giusta? –

+0

Sì, nelle proprietà del file (nell'esploratore di soluzione di Visual Studio, fare clic con il pulsante destro del mouse sul file, fare clic sulle proprietà e dovrebbe esserci un file denominato "Crea azione"). Se l'azione build è impostata sul contenuto, dovresti essere in grado di aprire il file usando qualcosa come '' (cioè, se la tua immagine è in "Live "sottocartella della cartella" IMG "). Potrebbero esserci alcune sottigliezze quando si utilizza un oggetto 'Uri', quindi suggerisco di provare prima direttamente da XAML usando il codice che ho fornito –

risposta

4

Posso riprodurre il problema quando si modifica lo sfondo di un controllo utente.

L'attuale soluzione alternativa utilizzata è stata la modifica dello sfondo di UIElement radice nel controllo.

<Grid x:Name="container"> 
    <Grid.Background> 
     <ImageBrush Stretch="Fill" ImageSource="Images/bg-blue.png"/> 
    </Grid.Background> 
    <StackPanel> 
     <TextBlock>Hello World</TextBlock> 
     <Button Click="Button_Click">Change Background</Button> 
     <Image x:Name="display"></Image> 
    </StackPanel> 
</Grid> 

public sealed partial class MyUserControl : UserControl 
{ 
    public MyUserControl() 
    { 
     this.InitializeComponent(); 
    } 

    private void Button_Click(object sender, RoutedEventArgs e) 
    { 
     ImageBrush imgB = new ImageBrush(); 

     BitmapImage btpImg = new BitmapImage(); 

     btpImg.UriSource = new Uri(@"ms-appx:///images/bg-light-blue.png"); 

     imgB.ImageSource = btpImg; 

     container.Background = imgB; 
    } 
} 
+0

Grazie mille !!! Ma non riesco ancora a collegare le icone :( –

+0

Hai cambiato l'Uri in nuovo Uri ("ms-appx: ///IMG/Live/bck_frame_info_video_live.png")? –

+0

Sì, ho già risolto entrambi i problemi. Ho allegato le icone come Sfondo come la soluzione che hai proposto :) –

Problemi correlati