Eu venho de uma experiência principalmente na Web e um pouco no Windows Forms. Para um novo projeto, usaremos o WPF. O aplicativo WPF precisará de 10 a 20 pequenos ícones e imagens para fins ilustrativos. Estou pensando em armazená-los no assembly como recursos incorporados. Esse é o caminho certo a seguir?
Como especificar no XAML que um controle de imagem deve carregar a imagem de um recurso incorporado?
fonte
DynamicResource
extensão de marcação em vez deStaticResource
, assumindo que conheceria as chaves no momento da compilação. No WPF, você pode criar dicionários de recursos em tempo de execução. De fato, é o que acontece quando você carrega um documento Xaml, mas não vê o C # equivalente.Width="{Binding Source.PixelWidth, RelativeSource={RelativeSource Self}}"
aoImage
, pois, caso contrário, muitas vezes vejo imagens aumentando de forma grotesca por algum motivo (como ícones de 16x16 esticados para algo que se parece com 200x200 pixels).Eu descobri que a melhor prática de usar imagens, vídeos etc. é:
Exemplo
Benefícios:
fonte
Algumas pessoas estão perguntando sobre fazer isso no código e não obtendo uma resposta.
Depois de passar muitas horas pesquisando, encontrei um método muito simples, não encontrei exemplo e, portanto, compartilho o meu aqui, que funciona com imagens. (o meu era um .gif)
Resumo:
Ele retorna um BitmapFrame que os "destinos" do ImageSource parecem gostar.
Usar:
Método:
Aprendizados:
Pelas minhas experiências, a sequência do pacote não é o problema, verifique seus fluxos e, especialmente, se a leitura pela primeira vez definir o ponteiro para o final do arquivo e você precisar redefinir para zero antes de ler novamente.
Espero que isso poupe as muitas horas que eu gostaria que esta peça tivesse para mim!
fonte
No código para carregar um recurso no assembly em execução em que minha imagem
Freq.png
estava na pastaIcons
e definida comoResource
:Eu também fiz uma função:
Uso (suposição de que você coloque a função em uma classe ResourceHelper):
Nota : consulte URIs do pacote MSDN no WPF :
pack://application:,,,/ReferencedAssembly;component/Subfolder/ResourceFile.xaml
fonte
new Uri(@"pack://application:,,,/" + pathInApplication)
também fez o truque.Sim, é o caminho certo.
Você pode usar a imagem no arquivo de recurso usando o caminho:
Você deve definir a ação de compilação do arquivo de imagem como "Recurso".
fonte
Descrição completa de como usar recursos: Arquivos de Recursos, Conteúdo e Dados do Aplicativo WPF
E como referenciá-los, leia "Pack URIs in WPF".
Em resumo, existem meios para referenciar recursos de assemblies referenciados / referenciados.
fonte
Isso funcionou para mim:
fonte
Se você estiver usando o Blend , para torná-lo mais fácil e sem problemas para obter o caminho correto para o atributo Origem , basta arrastar e soltar a imagem do painel Projeto no designer.
fonte
Sim, é o caminho certo. Você pode usar imagens no arquivo Recurso usando um caminho:
fonte
O seguinte funcionou e as imagens a serem configuradas são recursos nas propriedades:
fonte