การตั้งค่าไอคอนสำหรับแอปพลิเคชัน wpf (VS 08)


125

ก่อนที่จะดำเนินการต่อไปฉันจะพูดถึงฉันได้ลองวิธีแก้ไขแล้วดังนี้:

ฉันจะตั้งค่าไอคอนสำหรับแอปพลิเคชันของฉันใน Visual Studio 2008 ได้อย่างไร

ตั้งค่าไอคอนแอปพลิเคชันจากทรัพยากรใน VS 05

ฉันกำลังพยายามตั้งค่าไอคอนสำหรับแอปพลิเคชันของฉัน

AFAIK ฉันต้องการ 3 ภาพหรือไม่?

  • 1 ภาพคือภาพจริงใน explorer เมื่อคลิกที่. exe (ภาพขนาดย่อสำหรับ exe)
  • 1 ภาพ (เล็ก ๆ ) ที่มุมบนซ้าย (16 x 16 หรือไม่ไม่แน่ใจทั้งหมด)
  • 1 ภาพในท่าเรือเมนูเริ่มทางด้านซ้ายของแอพ (อาจเป็น 32x32 หรือเปล่าไม่แน่ใจอีกครั้ง)

เป็นอย่างดี

ตอนนี้ฉันได้เลือกไอคอนแล้ว ฉันจะใช้มันในสถานการณ์ใดสถานการณ์หนึ่งข้างต้นได้อย่างไร

ฉันได้ลองเพิ่มในแหล่งข้อมูลแล้วดูเหมือนจะไม่มีอะไรเกิดขึ้น ตามโซลูชัน SO แรกนั้น

"ขั้นแรกให้ไปที่มุมมองทรัพยากร (จากเมนู: มุมมอง -> หน้าต่างอื่น -> มุมมองทรัพยากร) จากนั้นในมุมมองทรัพยากรให้นำทางผ่านทรัพยากรต่างๆถ้ามีหากมีทรัพยากรประเภทไอคอนอยู่แล้วเพิ่มโดย Visual Studio เปิดและแก้ไขมิฉะนั้นให้คลิกขวาแล้วเลือกเพิ่มทรัพยากรจากนั้นเพิ่มไอคอนใหม่ "

มุมมองทรัพยากรว่างเปล่าและฉันไม่สามารถคลิกขวาในมุมมองนี้ได้

หากฉันคลิกขวาที่โซลูชัน> คุณสมบัติ> ทรัพยากร> ฉันสามารถเพิ่มรูปภาพไอคอนได้ แต่ไม่ปรากฏในตำแหน่งใดตำแหน่งหนึ่งที่ระบุไว้ด้านบน (หรือทุกที่ที่ฉันเห็น)

1) ฉันจะตั้งค่าไอคอนแอปพลิเคชันสำหรับแอปพลิเคชัน WPF ได้อย่างไร


จริงๆแล้วนั่นคือ Win 7 Talk; XP เรามีแค่สองตัว? 16 x 16 และภาพขนาดย่อขนาดใหญ่สำหรับ exe (ไม่แน่ใจว่าขนาด)
baron

สำหรับใครก็ตามที่สนใจฉันตั้งค่า Icon หนึ่งอันรูปภาพคือ 64 x 64 และอย่างอื่น (ขนาดเล็กกว่า) ถูกสร้างขึ้นโดยอัตโนมัติจากการปรับขนาดภาพต้นฉบับที่ฉันให้ไว้
บารอน

ลองดูคำถามนี้ใน SuperUser superuser.com/questions/142731/…สำหรับการสร้างไอคอน windows ในแอปของคุณอย่างง่ายดาย
Chris Marisic

สิ่งนี้มีประโยชน์: rw-designer.com/image-to-icon
Andrew

คำตอบ:


163

สมมติว่าคุณใช้ VS Express และ C # ไอคอนถูกตั้งค่าในหน้าคุณสมบัติโครงการ หากต้องการเปิดให้คลิกขวาที่ชื่อโปรเจ็กต์ในตัวสำรวจโซลูชัน ในหน้าที่เปิดขึ้นมามีแท็บแอปพลิเคชันในแท็บนี้คุณสามารถตั้งค่าไอคอนได้


2
ขอบคุณสำหรับคำตอบ ... สิ่งอื่น ๆ ที่ฉันพบอธิบายการยุ่งเหยิงในแหล่งข้อมูล แต่การติดตามทรัพยากรโซลูชันของคุณถูกปล่อยให้อยู่คนเดียวโดยสิ้นเชิงและตั้งค่าไว้ในแท็บแอปพลิเคชัน ไชโย
บารอน

61
ใช่. สิ่งนี้ได้ผลสำหรับฉัน อย่างไรก็ตามดูเหมือนว่าเมื่อเรียกใช้แอปพลิเคชันจากดีบักเกอร์ VS (เช่นการกด F5) ไอคอน "ทั่วไป" จะยังคงแสดงอยู่ อย่างไรก็ตามการทำงานโดยไม่มีดีบักเกอร์ (เช่น ctrl + f5 หรือจากเดสก์ท็อปเป็นต้น) จะแสดงไอคอนที่กำหนดเองตามที่คาดไว้
ทอม

7
นั่นเป็นเพราะเมื่อดีบักเกอร์รันโค้ดของคุณจะใช้เวอร์ชัน VShost.exe ของบิลด์ของคุณ (เพื่อช่วยในการดีบัก) ซึ่งใช้ไอคอนแอปพลิเคชันเริ่มต้นและไม่ใช่ไอคอนที่ตั้งค่าในแท็บแอปพลิเคชันเนื่องจากตั้งค่าไว้สำหรับ yourapplication.exe
VisualBean

95

คำตอบของ @ 742 ใช้งานได้ดี แต่ตามที่ระบุไว้ในความคิดเห็นเมื่อเรียกใช้จากดีบักเกอร์ VS ไอคอนทั่วไปจะยังคงแสดงอยู่

หากคุณต้องการให้ไอคอนของคุณแม้ในขณะที่คุณกำลังกด F5 คุณสามารถเพิ่มในหน้าต่างหลัก:

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

ที่คุณระบุเส้นทางไปยังไอคอนของคุณ (ไอคอนสามารถ*.png, *.ico.)

(โปรดทราบว่าคุณยังต้องตั้งค่าไอคอนแอปพลิเคชันมิฉะนั้นจะยังคงเป็นค่าเริ่มต้นใน Explorer)


8
การตั้งค่าทั้งสองอย่างเป็นสิ่งที่ดีเพราะดูเหมือนว่าจำเป็นเพื่อให้ไอคอนปรากฏบนทั้งหน้าต่างและไฟล์ EXE
Vimes

3
เพียงตรวจสอบให้แน่ใจว่าได้ตั้งค่าไอคอนเป็น build action ของ "Resource" ตามที่ @AdamDylla กล่าวว่า stackoverflow.com/a/39897641/1703887
csrowell

4

หมายเหตุ: (แทนที่file.icoด้วยชื่อไฟล์ไอคอนจริงของคุณ)

  1. เพิ่มไอคอนลงในโปรเจ็กต์ด้วยการสร้างแอ็คชั่นของ "Resource"
  2. ในคุณสมบัติโครงการตั้งค่าไอคอนแอปพลิเคชันเป็น file.ico
  3. ในชุด Window XAML หลัก: Icon=".\file.ico"บนหน้าต่าง

3

หลังจากได้รับXamlParseExceptionพร้อมข้อความ: 'ให้ค่าบน' System.Windows.Baml2006.TypeConverterMarkupExtension 'ด้วยโซลูชันที่กำหนดการตั้งค่าไอคอนที่ใช้งานได้โดยทางโปรแกรมสำหรับฉัน นี่คือวิธีที่ฉันทำ:

  1. ใส่ไอคอนในโฟลเดอร์ < icon_path > ในไดเร็กทอรีโปรเจ็กต์
  2. เลียนแบบเส้นทางโฟลเดอร์ < icon_path > ในโซลูชัน
  3. เพิ่มรายการใหม่ (ไอคอนของคุณ) ในโฟลเดอร์โซลูชันที่คุณสร้างขึ้น
  4. เพิ่มรหัสต่อไปนี้ในโค้ดของหน้าต่าง WPF ด้านหลัง:

Icon = BitmapImage ใหม่ (Uri ใหม่ ("< icon_path >", UriKind.Relative));

โปรดแจ้งให้ฉันทราบหากคุณมีปัญหาใด ๆ ในการใช้โซลูชันนี้เพื่อให้เราช่วยได้


การแก้ไขอย่างง่ายสำหรับข้อความแสดงข้อผิดพลาดนี้คือการตั้งค่าไอคอนให้เป็น build action ของ "Resource" ตามที่ @AdamDylla กล่าวว่าstackoverflow.com/a/39897641/1703887
csrowell

0

คุณสามารถลองสิ่งนี้:

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);
    }
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.