Einstellungssymbol für die wpf-Anwendung (VS 08)

125

Bevor ich weiter gehe, werde ich erwähnen, dass ich folgende Lösungen ausprobiert habe:

Wie setze ich das Symbol für meine Anwendung in Visual Studio 2008?

Legen Sie das Anwendungssymbol aus den Ressourcen in VS 05 fest

Ich versuche, ein Symbol für meine Anwendung festzulegen.

AFAIK, ich brauche möglicherweise 3 Bilder?

  • 1 Bild ist das tatsächliche Bild im Explorer, wenn Sie auf die EXE-Datei klicken (Miniaturbild für die Exe).
  • 1 Bild (winzig) in der oberen linken Ecke (16 x 16? Nicht ganz sicher)
  • 1 Bild im Startmenü-Dock links von der App (vielleicht 32x32? Wieder nicht sicher)

Das ist also in Ordnung.

Jetzt habe ich ein Symbol ausgewählt. Wie verwende ich es in einer der oben genannten Situationen?

Ich habe versucht, es in Ressourcen hinzuzufügen, nichts scheint zu passieren. Nach dieser ersten SO-Lösung

"Gehen Sie zuerst zur Ressourcenansicht (über das Menü: Ansicht -> Anderes Fenster -> Ressourcenansicht). Navigieren Sie dann in der Ressourcenansicht durch Ressourcen, falls vorhanden. Wenn bereits eine Ressource vom Typ Symbol vorhanden ist, die von Visual Studio hinzugefügt wurde, dann Öffnen und bearbeiten Sie es. Andernfalls klicken Sie mit der rechten Maustaste und wählen Sie Ressource hinzufügen und fügen Sie dann ein neues Symbol hinzu. "

Die Ressourcenansicht ist leer und ich kann in dieser Ansicht nicht mit der rechten Maustaste klicken.

Wenn ich mit der rechten Maustaste auf die Lösung> Eigenschaften> Ressourcen> klicke, kann ich das Symbolbild hinzufügen, es wird jedoch an keiner der oben aufgeführten Stellen angezeigt. (oder irgendwo, wo ich sehen kann)

1) Wie setze ich das Anwendungssymbol für eine WPF-Anwendung?

Baron
quelle
Eigentlich ist das Win 7 Talk; XP haben wir nur zwei, denke ich? die 16 x 16 und das große Vorschaubild für die Exe (nicht sichere Größe)
Baron
Für alle Interessierten habe ich ein Symbol festgelegt, das Bild war 64 x 64 und alles andere (die kleineren Größen) wurde automatisch aus der Skalierung des von mir bereitgestellten Originalbilds erstellt.
Baron
Schauen Sie sich diese Frage auf Superuser superuser.com/questions/142731/... für leicht in Windows - Symbole in Ihre App gebaut zu werden .
Chris Marisic
Dies war hilfreich: rw-designer.com/image-to-icon
Andrew

Antworten:

163

Angenommen, Sie verwenden VS Express und C #. Das Symbol wird auf der Seite mit den Projekteigenschaften festgelegt. Um es zu öffnen, klicken Sie mit der rechten Maustaste auf den Projektnamen im Solution Explorer. Auf der sich öffnenden Seite befindet sich eine Registerkarte Anwendung. Auf dieser Registerkarte können Sie das Symbol festlegen.

742
quelle
2
Vielen Dank für Ihre Antwort ... alles andere, was ich gefunden habe, erklärt das Herumspielen in den Ressourcen, aber das Befolgen Ihrer Lösungsressourcen wurde völlig alleine gelassen und einfach auf der Registerkarte Anwendung festgelegt. Prost
Baron
61
Ja. Das hat bei mir funktioniert. Es scheint jedoch, dass beim Ausführen der Anwendung über den VS-Debugger (dh Drücken von F5) weiterhin das Symbol "Allgemein" angezeigt wird. Wenn Sie jedoch ohne den Debugger (z. B. Strg + F5 oder vom Desktop usw.) ausgeführt werden, wird erwartungsgemäß das benutzerdefinierte Symbol angezeigt.
Tom
7
Dies liegt daran, dass der Debugger beim Ausführen Ihres Codes die Version vshost.exe Ihres Builds (zur Unterstützung des Debuggens) verwendet, die das Standardanwendungssymbol und NICHT das auf der Registerkarte "Anwendungen" festgelegte Symbol verwendet, da dies für yourapplication.exe festgelegt ist
VisualBean
95

Die Antwort von @ 742 funktioniert ziemlich gut, aber wie in den Kommentaren beschrieben, wird beim Ausführen vom VS-Debugger das generische Symbol weiterhin angezeigt.

Wenn Sie Ihr Symbol auch dann haben möchten, wenn Sie F5 drücken, können Sie im Hauptfenster Folgendes hinzufügen:

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

wo Sie den Pfad zu Ihrem Symbol angeben (das Symbol kann sein *.png,*.ico .)

(Beachten Sie, dass Sie das Anwendungssymbol weiterhin festlegen müssen, da dies im Explorer weiterhin die Standardeinstellung ist.)

astreal
quelle
8
Das Einstellen von beiden ist gut, da das Symbol anscheinend sowohl im Fenster als auch in der EXE-Datei angezeigt werden muss.
Mumm
3
Stellen Sie einfach sicher, dass das Symbol auf eine Build-Aktion von "Resource" gesetzt ist, wie @AdamDylla sagte: stackoverflow.com/a/39897641/1703887
csrowell
4

Hinweis: (Ersetzen Sie file.ico durch Ihren tatsächlichen Symboldateinamen. )

  1. Fügen Sie dem Projekt das Symbol mit der Build-Aktion "Ressource" hinzu.
  2. Setzen Sie in den Projekteigenschaften das Anwendungssymbol auf file.ico
  3. Im Hauptfenster XAML-Set: Icon=".\file.ico"im Fenster
Adam Dylla
quelle
3

Nachdem Sie eine XamlParseException mit der Meldung "Geben Sie einen Wert für" System.Windows.Baml2006.TypeConverterMarkupExtension " mit den angegebenen Lösungen erhalten haben, hat das Setzen des Symbols programmgesteuert für mich funktioniert. So habe ich es gemacht:

  1. Legen Sie das Symbol in einem Ordner < icon_path > im Projektverzeichnis ab
  2. Imitieren Sie den Ordnerpfad < icon_path > in der Lösung
  3. Fügen Sie dem von Ihnen erstellten Lösungsordner ein neues Element (Ihr Symbol) hinzu
  4. Fügen Sie den folgenden Code in den Code des WPF-Fensters ein:

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

Bitte informieren Sie mich, wenn Sie Schwierigkeiten bei der Implementierung dieser Lösung haben, damit ich Ihnen helfen kann.

Marvin Thobejane
quelle
Die einfache Lösung für diese Fehlermeldung besteht darin, das Symbol auf eine Build-Aktion von "Resource" zu setzen, wie @AdamDylla sagte: stackoverflow.com/a/39897641/1703887
csrowell
0

Sie können dies auch versuchen:

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);
    }
Nadeem Shaikh
quelle