Ikona ustawień dla aplikacji wpf (VS 08)


125

Zanim przejdę dalej, wspomnę, że wypróbowałem następujące rozwiązania:

Jak ustawić ikonę dla mojej aplikacji w programie Visual Studio 2008?

Ustaw ikonę aplikacji z zasobów w VS 05

Próbuję ustawić ikonę dla mojej aplikacji.

AFAIK, potrzebuję potencjalnie 3 obrazów?

  • Obraz 1 to rzeczywisty obraz w eksploratorze po kliknięciu pliku .exe (miniatura dla exe)
  • 1 obraz (malutki) w lewym górnym rogu (16 x 16? Nie do końca pewny)
  • 1 obraz w doku menu Start po lewej stronie aplikacji (może 32x32? Znowu nie jestem pewien)

Więc to w porządku.

Teraz wybrałem ikonę. Jak go używać w jednej z powyższych sytuacji?

Próbowałem dodać to do zasobów, nic się nie dzieje. Po tym pierwszym rozwiązaniu SO,

„Najpierw przejdź do widoku zasobów (z menu: Widok -> Inne okno -> Widok zasobów). Następnie w widoku zasobów przejdź przez zasoby, jeśli istnieją. Jeśli istnieje już zasób typu Ikona, dodany przez program Visual Studio, otwórz i edytuj go. W przeciwnym razie kliknij prawym przyciskiem myszy i wybierz opcję Dodaj zasób, a następnie dodaj nową ikonę ”.

Widok zasobów jest pusty i nie mogę kliknąć tego widoku prawym przyciskiem myszy.

Jeśli kliknę prawym przyciskiem myszy rozwiązanie> właściwości> zasoby> mogę dodać obraz ikony, ale nie jest on wyświetlany w żadnej z wymienionych powyżej lokalizacji. (lub gdziekolwiek widzę)

1) Jak ustawić ikonę aplikacji dla aplikacji WPF?


Właściwie to jest Win 7 Talk; XP, myślę, że mamy tylko dwa? 16 x 16 i duża miniatura dla exe (nie jestem pewien rozmiaru)
baron

Dla wszystkich zainteresowanych ustawiłem jedną ikonę, obraz miał 64 x 64, a wszystko inne (mniejsze rozmiary) zostały wykonane automatycznie ze skalowania oryginalnego obrazu, który dostarczyłem.
baron

Sprawdź to pytanie na SuperUser superuser.com/questions/142731/…, aby łatwo wbudować ikony systemu Windows w swoją aplikację.
Chris Marisic

Odpowiedzi:


163

Zakładając, że używasz VS Express i C #. Ikona jest ustawiona na stronie właściwości projektu. Aby go otworzyć, kliknij prawym przyciskiem myszy nazwę projektu w eksploratorze rozwiązań. na stronie, która się otworzy, znajduje się zakładka Aplikacja, w tej zakładce możesz ustawić ikonę.


2
Dziękuję za odpowiedź ... wszystko inne, co znalazłem, wyjaśnia zamieszanie w zasobach, ale śledzenie zasobów rozwiązania zostało całkowicie sam i po prostu ustawiono je na karcie Aplikacja. Pozdrawiam
baron

61
Tak. To zadziałało dla mnie. Wydaje się jednak, że podczas uruchamiania aplikacji z debugera VS (tj. Po naciśnięciu klawisza F5) ikona „generyczna” jest nadal wyświetlana. Jednak uruchomienie bez debugera (tj. Ctrl + f5 lub z pulpitu itp.) Pokazuje niestandardową ikonę, zgodnie z oczekiwaniami.
Tom

7
Dzieje się tak, ponieważ gdy debugger uruchamia Twój kod, używa wersji vshost.exe Twojej kompilacji (aby ułatwić debugowanie), która używa domyślnej ikony aplikacji, a NIE ikony ustawionej na karcie aplikacji, ponieważ jest to ustawione dla yourapplication.exe
VisualBean

95

Odpowiedź @ 742 działa całkiem dobrze, ale jak opisano w komentarzach podczas uruchamiania z debugera VS, ogólna ikona jest nadal wyświetlana.

Jeśli chcesz mieć swoją ikonę nawet po naciśnięciu klawisza F5, możesz dodać w oknie głównym:

<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">

gdzie wskazujesz ścieżkę do swojej ikony (ikona może być *.png,*.ico ).

(Pamiętaj, że nadal musisz ustawić ikonę aplikacji lub nadal będzie to ustawienie domyślne w Eksploratorze).


8
Ustawienie obu jest dobre, ponieważ wydaje się, że jest wymagane, aby ikona pojawiła się zarówno w oknie, jak i w pliku EXE.
Vimes

3
Po prostu upewnij się, że ustawiłeś ikonę na akcję kompilacji „Resource”, jak powiedział @AdamDylla: stackoverflow.com/a/39897641/1703887
csrowell

4

Uwaga: (zastąp plik.ico rzeczywistą nazwą pliku ikony)

  1. Dodaj ikonę do projektu z akcją kompilacji „Zasób”.
  2. We właściwościach projektu ustaw ikonę aplikacji na file.ico
  3. W głównym zestawie Window XAML: Icon=".\file.ico"on the Window

3

Po otrzymaniu XamlParseException z komunikatem: „Podaj wartość na„ System.Windows.Baml2006.TypeConverterMarkupExtension ” z podanymi rozwiązaniami, ustawienie ikony programowo działało dla mnie. Oto jak to zrobiłem:

  1. Umieść ikonę w folderze < icon_path > w katalogu projektu
  2. Naśladuj ścieżkę folderu < icon_path > w rozwiązaniu
  3. Dodaj nowy element (swoją ikonę) do utworzonego folderu rozwiązania
  4. Dodaj następujący kod w kodzie okna WPF za:

Ikona = nowy BitmapImage (nowy Uri ("< icon_path >", UriKind.Relative));

Proszę o poinformowanie mnie, jeśli masz jakiekolwiek trudności z wdrożeniem tego rozwiązania, aby móc pomóc.


Łatwym rozwiązaniem tego komunikatu o błędzie jest ustawienie ikony na akcję kompilacji „Zasób”, jak powiedział @AdamDylla: stackoverflow.com/a/39897641/1703887
csrowell

0

Możesz także spróbować:

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);
    }
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.