Definindo o ícone para o aplicativo wpf (VS 08)


125

Antes de ir muito além, vou mencionar que tentei soluções a seguir:

Como defino o ícone do meu aplicativo no visual studio 2008?

Definir ícone do aplicativo de recursos no VS 05

Estou tentando definir um ícone para o meu aplicativo.

AFAIK, preciso potencialmente de 3 imagens?

  • 1 image é a imagem real no explorer ao clicar no .exe (miniatura do exe)
  • 1 imagem (pequena) no canto superior esquerdo (16 x 16? Não tenho certeza)
  • 1 imagem na doca do menu Iniciar, à esquerda do aplicativo (talvez 32 x 32? Novamente, não tenho certeza)

Então está tudo bem.

Agora eu selecionei um ícone. Como eu o uso em uma das situações acima?

Eu tentei adicioná-lo em recursos, nada parece acontecer. Após a primeira solução SO,

"Primeiro, vá para a Exibição de recursos (no menu: Exibir -> Outra janela -> Exibição de recursos). Em seguida, na Exibição de recursos, navegue pelos recursos, se houver. Se já houver um recurso do tipo Ícone, adicionado pelo Visual Studio, então abra e edite-o. Caso contrário, clique com o botão direito do mouse e selecione Adicionar recurso e adicione um novo ícone ".

A visualização de recursos está vazia e não consigo clicar com o botão direito nessa visualização.

Se clicar com o botão direito do mouse na solução> propriedades> recursos> posso adicionar a imagem do ícone, mas ela não aparece em nenhum dos locais listados acima. (ou em qualquer lugar que eu possa ver)

1) Como defino o ícone do aplicativo para um aplicativo WPF?


Na verdade, isso é o Win 7 Talk; XP, temos apenas dois, eu acho? a miniatura 16 x 16 ea grande para o exe (não tenho certeza do tamanho)
barão

Para qualquer pessoa interessada, configurei um ícone, a imagem era 64 x 64 e tudo o resto (tamanhos menores) foi criado automaticamente a partir do dimensionamento da imagem original que forneci.
baron

Confira esta pergunta no Superusuário superuser.com/questions/142731/… para criar ícones do Windows facilmente no seu aplicativo.
Chris Marisic

Respostas:


163

Supondo que você use o VS Express e o C #. O ícone é definido na página de propriedades do projeto. Para abri-lo, clique com o botão direito do mouse no nome do projeto no Solution Explorer. na página que é aberta, há uma guia Aplicativo. Nesta guia, você pode definir o ícone.


2
Obrigado por sua resposta ... tudo o que eu encontrei explica a bagunça nos recursos, mas seguir os recursos da solução foi deixado completamente sozinho e apenas defina-o na guia Aplicativo. Cheers
barão

61
Sim. Isso funcionou para mim. No entanto, parece que ao executar o aplicativo a partir do depurador VS (ou seja, pressionar F5), o ícone 'genérico' ainda é mostrado. No entanto, a execução sem o depurador (por exemplo, ctrl + f5 ou da área de trabalho etc) mostra o ícone personalizado, conforme o esperado.
Tom

7
Isso ocorre porque, quando o depurador executa seu código, ele usa a versão vshost.exe de sua compilação (para ajudar na depuração), que usa o ícone do aplicativo padrão e NÃO o ícone definido na guia aplicativos, pois está definido para yourapplication.exe
VisualBean

95

A resposta do @ 742 funciona muito bem, mas conforme descrito nos comentários ao executar a partir do depurador do VS, o ícone genérico ainda é mostrado.

Se você deseja ter seu ícone mesmo quando pressiona F5, pode adicioná-lo na Janela Principal:

<Window x:Class="myClass"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Icon="./Resources/Icon/myIcon.png">

onde indicam o caminho para o ícone (o ícone pode ser *.png, *.ico.)

(Observe que você ainda precisará definir o ícone do aplicativo ou ainda será o padrão no Explorer).


8
Definir as duas coisas é bom porque parece ser necessário que o ícone apareça na janela e no arquivo EXE.
Vimes

3
Apenas certifique-se de definir o ícone para uma ação de compilação de "Resource", como disse @AdamDylla: stackoverflow.com/a/39897641/1703887
csrowell

4

Nota: (substitua file.ico pelo nome do arquivo real do ícone)

  1. Adicione o ícone ao projeto com a ação de compilação de "Recurso".
  2. Nas propriedades do projeto, defina o ícone do aplicativo como file.ico
  3. No conjunto principal de XAML da janela: Icon=".\file.ico"na janela

3

Depois de obter um XamlParseException com a mensagem: 'Forneça valor em' System.Windows.Baml2006.TypeConverterMarkupExtension '' com as soluções fornecidas, definindo o ícone programaticamente funcionou para mim. Foi assim que eu fiz:

  1. Coloque o ícone em uma pasta < icon_path > no diretório do projeto
  2. Imite o caminho da pasta < icon_path > na solução
  3. Adicione um novo item (seu ícone) na pasta da solução que você criou
  4. Adicione o seguinte código no código da janela WPF por trás:

Icon = nova BitmapImage (nova Uri ("< icon_path >", UriKind.Relative));

Informe-me se você tiver alguma dificuldade em implementar esta solução para que eu possa ajudar.


A correção fácil para esta mensagem de erro é definir o ícone para uma ação de compilação de "Resource", como disse @AdamDylla: stackoverflow.com/a/39897641/1703887
csrowell

0

Você pode tentar isso também:

private void Page_Loaded_1(object sender, RoutedEventArgs e)
    {
        Uri iconUri = new Uri(@"C:\Apps\R&D\WPFNavigation\WPFNavigation\Images\airport.ico", UriKind.RelativeOrAbsolute);
        (this.Parent as Window).Icon = BitmapFrame.Create(iconUri);
    }
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.