2010-04-20 46 views
104

Trước khi đi xa hơn nhiều tôi sẽ đề cập đến Tôi đã thử các giải pháp trong sau:Setting Biểu tượng cho các ứng dụng WPF (VS 08)

How do I set the icon for my application in visual studio 2008?

Set application icon from resources in VS 05

Tôi cố gắng để thiết lập một biểu tượng cho tôi ứng dụng.

AFAIK, tôi cần có khả năng 3 hình ảnh?

  • 1 hình ảnh là hình ảnh thực tế trong explorer khi nhấp vào .exe (thumbnail cho exe)
  • 1 hình ảnh (nhỏ) ở góc trên cùng bên trái (16 x 16? Không hoàn toàn chắc chắn)
  • 1 hình ảnh trong thanh menu bắt đầu, ở bên trái của ứng dụng (có thể là 32x32? Lại không chắc chắn)

Vì vậy, đó là tốt.

Bây giờ tôi đã chọn Biểu tượng. Làm thế nào để sử dụng nó trong một trong các tình huống trên?

Tôi đã thử thêm nó vào tài nguyên, dường như không có gì xảy ra. Theo sau giải pháp SO đầu tiên đó,

"Trước tiên hãy chuyển đến chế độ xem tài nguyên (từ menu: Xem -> Cửa sổ khác -> Chế độ xem tài nguyên). tài nguyên của loại biểu tượng, được thêm bởi Visual Studio, sau đó mở và chỉnh sửa nó. Nếu không nhấp chuột phải và chọn Thêm tài nguyên, và sau đó thêm một biểu tượng mới. "

Chế độ xem tài nguyên trống và tôi không thể nhấp chuột phải trong chế độ xem này.

Nếu tôi nhấp chuột phải vào giải pháp> thuộc tính> tài nguyên> Tôi có thể thêm hình ảnh biểu tượng, nhưng nó không hiển thị ở một trong các vị trí được liệt kê ở trên. (hoặc bất kỳ nơi nào tôi có thể thấy)

1) Làm cách nào để đặt biểu tượng ứng dụng cho một ứng dụng WPF?

+0

Trên thực tế đó là Win 7 Talk; XP, chúng tôi chỉ có hai tôi nghĩ? 16 x 16 và hình thu nhỏ lớn cho ảnh exe (không chắc kích thước) – baron

+0

Đối với bất kỳ ai quan tâm, tôi đặt một Biểu tượng, hình ảnh là 64 x 64 và mọi thứ khác (kích thước nhỏ hơn) được tạo tự động từ việc chia tỷ lệ hình ảnh ban đầu mà tôi đã cung cấp . – baron

+0

Kiểm tra câu hỏi này trên SuperUser http://superuser.com/questions/142731/which-dlls-included-in-windows-contain-icons để xây dựng các biểu tượng cửa sổ vào ứng dụng của bạn một cách dễ dàng. –

Trả lời

136

Giả sử bạn sử dụng VS Express và C#. Biểu tượng được đặt trong trang thuộc tính dự án. Để mở nó, nhấp chuột phải vào tên dự án trong trình khám phá giải pháp. trong trang mở ra, có một tab Ứng dụng, trong tab này, bạn có thể đặt biểu tượng.

+2

Cảm ơn bạn đã trả lời ... mọi thứ khác tôi đã tìm thấy giải thích rối tung xung quanh trong tài nguyên, nhưng sau khi tài nguyên giải pháp của bạn được để lại hoàn toàn một mình và chỉ cần đặt nó trong tab Ứng dụng. Chúc mừng – baron

+59

Có. Điều này làm việc cho tôi. Tuy nhiên, có vẻ như khi chạy ứng dụng từ trình gỡ lỗi VS (tức là nhấn F5), biểu tượng 'chung' vẫn được hiển thị. Tuy nhiên, chạy mà không có trình gỡ rối (tức là ctrl + f5, hoặc từ máy tính để bàn, vv) cho thấy biểu tượng tùy chỉnh, như mong đợi. – Tom

+6

Đó là vì, khi trình gỡ lỗi chạy mã của bạn, nó sử dụng phiên bản vshost.exe của bản dựng của bạn (để hỗ trợ gỡ lỗi) sử dụng biểu tượng ứng dụng mặc định và KHÔNG đặt biểu tượng trong tab ứng dụng, vì điều này được đặt cho yourapplication.exe – VisualBean

82

@ 742 của câu trả lời hoạt động khá tốt, nhưng như được nêu trong các ý kiến ​​khi chạy từ trình gỡ lỗi VS biểu tượng chung vẫn được hiển thị.

Nếu bạn muốn có biểu tượng của bạn ngay cả khi bạn nhấn F5, bạn có thể thêm vào trong cửa sổ chính:

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

nơi bạn chỉ ra đường dẫn đến biểu tượng của bạn (biểu tượng có thể *.png, *.ico .)

(Lưu ý bạn vẫn sẽ cần phải đặt Biểu tượng ứng dụng hoặc nó vẫn sẽ là mặc định trong Explorer).

+6

Cài đặt cả hai đều tốt vì có vẻ như biểu tượng xuất hiện trên cả cửa sổ lẫn tệp EXE. – Vimes

+0

Câu trả lời này phù hợp với tôi. –

+0

Chỉ cần đảm bảo đặt biểu tượng thành tác vụ xây dựng của "Tài nguyên" là @AdamDylla đã nói: stackoverflow.com/a/39897641/1703887 – csrowell

2

Sau khi nhận được XamlParseException với thông báo: 'Cung cấp giá trị trên' System.Windows.Baml2006.TypeConverterMarkupExtension ' với các giải pháp đã cho, đặt biểu tượng lập trình hoạt động cho tôi. Đây là cách tôi đã làm nó:

  1. Đặt biểu tượng trong một thư mục < icon_path > trong thư mục dự án
  2. Mimic thư mục con đường < icon_path > trong dung dịch
  3. Thêm một mục mới (biểu tượng của bạn) trong thư mục giải pháp mà bạn đã tạo
  4. Thêm mã sau vào mã của cửa sổ WPF phía sau:

Biểu tượng = new BitmapImage (new Uri ("< icon_path >", UriKind.Relative));

Vui lòng thông báo cho tôi nếu bạn gặp khó khăn khi triển khai giải pháp này để tôi có thể trợ giúp.

+0

Sửa lỗi dễ dàng cho thông báo lỗi này là đặt biểu tượng thành hành động xây dựng của "Tài nguyên "như @AdamDylla đã nói: https://stackoverflow.com/a/39897641/1703887 – csrowell

0

Bạn có thể thử điều này cũng:

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); 
    } 
1

Lưu ý: (thay thế file.ico với tên tập tin biểu tượng thực tế của bạn)

  1. Thêm biểu tượng cho dự án xây dựng với hoạt động của "Resource ".
  2. Trong Properties dự án, thiết lập các biểu tượng ứng dụng để file.ico
  3. Trong bộ Window XAML chính: Icon=".\file.ico" trên Window
Các vấn đề liên quan