none
Referenciar uma imagem que está em outro projeto

    Question

  • Olá Pessoal.

    Como todos acho q já fizeram, estou com uma solution com dois projetos Silverlight, e Web. Gostaria de saber como eu faço para referenciar uma imagem que está dentro de uma pasta no projeto web, lá na página Main do projeto silverlight.

    Vi alguns escrevendo que seria "/MySLControl;Component/Images/myimg.png" sendo o MySLContorol o nome da assembly do projeto onde está minha figura, mas tentei e não consegui.

    Levando em consideração que o nome dos projetos é: WebProject e SLProject, como eu poderia fazer referência a imagem do projeto web no projeto SL?

    Alguma sugestão?

    Abraços

    Thursday, April 14, 2011 8:35 PM

All replies

  • Olá, Eduardo

    Vou tentar te ajudar , no início tentei utilizar   "[short_assemby_reference];component/minha_img.jpg" mas não funcionou acredito que só funcione com dois projetos silverlight não testei ainda , no meu caso para solucionar esse problema trabalhei com stream da imagem do projeto web e WCF  , não sei se te ajuda mas uma forma mais fácil de  solucionar esse problema seria colocar as imagens no ClientBin junto ao projeto.xap depois você pode referenciar de uma forma simples Souce="minha_img.jpg"  , não sei se sua arquitetura permite isso .

    Espero ter ajudado.


    Américo Arvani
    MCP Frw web 2.0
    MCP Frw web/win 3.5
    Se ajudou , marque como resposta.
    http://americoarvani.blogspot.com
    Friday, April 15, 2011 3:07 PM
  • Opa Américo, vlw pela ajuda.

    Mas neste caso, a arquitetura não permite, pois é um sistema gerenciador de documentos, então mudar toda a hierarquia das pastas não seria muito recomendado.

     

    O que vai servir como forma paleativa é montar o caminho dinamicamente da imagem e usar como path absoluto.

     

    Se alguém ainda puder ajudar sobre como fazer isto com path relativo, o tópico está aberto.

     

    Att.,

     

    Eduardo.

    Friday, April 15, 2011 7:10 PM
  • Olá, Eduardo

    Tente, agora pelo caminho relativo :

    var webClient = new System.Net.WebClient();
          webClient.OpenReadCompleted += new OpenReadCompletedEventHandler(webClient_OpenReadCompleted);      
          webClient.OpenReadAsync(new Uri("/img/minha_img.png",UriKind.Relative));
    
    void webClient_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e)
        {
          BitmapImage img = new BitmapImage();
          img.SetSource(e.Result);
          WriteableBitmap bmp = new WriteableBitmap(img);
          imgLogo.Source = bmp;      
        }
    

     

    ref book Silverlight 4 in action


    Américo Arvani
    MCP Frw web 2.0 / MCP Frw web/win 3.5
    Se ajudou , marque como resposta.
    http://americoarvani.blogspot.com View Americo Arvani's profile on LinkedIn
    Monday, April 18, 2011 12:55 PM
  • Olá Américo.

    Este caminho relativo que vc colocou ali não consta o projeto onde está a figura, correto?

    Monday, April 18, 2011 1:14 PM
  • Ele fica no projeto web do silverlight http://localhost/img/minha_img.png dentro da pasta img do projeto . No seu caso seria no WebProject na pasta Images/myimg.png .


    Américo Arvani
    MCP Frw web 2.0 / MCP Frw web/win 3.5
    Se ajudou , marque como resposta.
    http://americoarvani.blogspot.com
    View Americo Arvani's profile on LinkedIn
    Monday, April 18, 2011 1:29 PM
  • Tentei américo, mas não deu certo.

     

    Pra vc funcionou?

     

    Att.,

     

    Eduardo.

    Tuesday, April 26, 2011 12:40 PM
  • Olá , Eduardo

    Comigo funcionou normal , qual tipo de arquivo que você está tentando trabalhar?

    Teste em um novo projeto, exemplo:

    XAML

    <UserControl x:Class="Msdn.image"
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
      Width="400" Height="300">
      <Grid x:Name="LayoutRoot" Background="White">
        <Image x:Name="imgLogo" Width="50" Height="50">
        </Image>
      </Grid>
    </UserControl>
    

     CODE C#

    using System.Net;
    using System.Windows;
    using System.Windows.Controls;
    using System.Windows.Documents;
    using System.Windows.Input;
    using System.Windows.Media;
    using System.Windows.Media.Animation;
    using System.Windows.Shapes;
    using System.Windows.Media.Imaging;
    
    namespace Msdn
    {
      public partial class image : UserControl
      {
        public image()
        {
          InitializeComponent();
    
          var client = new System.Net.WebClient();
          client.OpenReadCompleted += new OpenReadCompletedEventHandler(client_OpenReadCompleted);
          client.OpenReadAsync(new Uri("/img/bi3t00.jpg", UriKind.Relative));
        }
    
        void client_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e)
        {
          BitmapImage img = new BitmapImage();
          img.SetSource(e.Result);
          WriteableBitmap bmp = new WriteableBitmap(img);
          imgLogo.Source = bmp;  
        }
      }
    }
    

     


    Américo Arvani
    MCP Frw web 2.0 / MCP Frw web/win 3.5
    Se ajudou , marque como resposta.
    http://americoarvani.blogspot.com
    View Americo Arvani's profile on LinkedIn
    Wednesday, April 27, 2011 12:19 PM