Значок настройки для приложения wpf (VS 08)

125

Прежде чем идти намного дальше, я упомяну, что пробовал следующие решения:

Как установить значок для моего приложения в Visual Studio 2008?

Установить значок приложения из ресурсов в VS 05

Я пытаюсь установить значок для своего приложения.

AFAIK, мне нужно потенциально 3 изображения?

  • 1 изображение является фактическим изображением в проводнике при нажатии на .exe (эскиз для exe)
  • 1 изображение (крошечное) в верхнем левом углу (16 x 16? Не совсем уверен)
  • 1 изображение в доке меню «Пуск» слева от приложения (может быть, 32x32? Снова не уверен)

Так что нормально.

Теперь я выбрал значок. Как мне использовать его в одной из вышеуказанных ситуаций?

Я пробовал добавить его в ресурсы, вроде ничего не происходит. Следуя этому первому решению SO,

«Сначала перейдите в представление ресурсов (из меню:« Просмотр »->« Другое окно »->« Просмотр ресурсов »). Затем в представлении ресурсов перейдите по ресурсам, если таковые имеются. Если уже существует ресурс типа« Значок », добавленный Visual Studio, тогда откройте и отредактируйте его. В противном случае щелкните правой кнопкой мыши и выберите Добавить ресурс, а затем добавьте новый значок ".

Представление ресурсов пусто, и я не могу щелкнуть в нем правой кнопкой мыши.

Если я щелкну правой кнопкой мыши на решении> свойства> ресурсы>, я могу добавить изображение значка, но оно не отображается ни в одном из перечисленных выше мест. (или где угодно, что я вижу)

1) Как установить значок приложения для приложения WPF?

барон
источник
Фактически это Win 7 Talk; Думаю, XP у нас всего два? размер 16 x 16 и большая миниатюра для exe (не уверен в размере)
baron
Для всех, кто интересуется, я установил один значок, изображение было 64 x 64, а все остальное (меньшие размеры) было сделано автоматически из масштабирования исходного изображения, которое я предоставил.
барон
Ответьте на этот вопрос на SuperUser superuser.com/questions/142731/…, чтобы легко встроить значки Windows в свое приложение.
Крис Марисич
Это было полезно: rw-designer.com/image-to-icon
Эндрю

Ответы:

163

Предполагая, что вы используете VS Express и C #. Значок устанавливается на странице свойств проекта. Чтобы открыть его, щелкните правой кнопкой мыши имя проекта в проводнике решений. на открывшейся странице есть вкладка Приложение, в этой вкладке вы можете установить значок.

742
источник
2
Спасибо за ваш ответ ... все остальное, что я нашел, объясняет возню с ресурсами, но следование вашим ресурсам решения было оставлено полностью в покое и просто установите его на вкладке приложения. Ура
барон
61
Да. Это сработало для меня. Однако, похоже, что при запуске приложения из отладчика VS (то есть при нажатии F5) значок «общего» все еще отображается. Однако при запуске без отладчика (например, ctrl + f5 или с рабочего стола и т. Д.), Как и ожидалось, отображается пользовательский значок.
Том
7
Это связано с тем, что, когда отладчик запускает ваш код, он использует версию vshost.exe вашей сборки (для облегчения отладки), которая использует значок приложения по умолчанию, а НЕ значок, установленный на вкладке приложений, поскольку это установлено для yourapplication.exe
VisualBean 06
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.)

(Обратите внимание, что вам все равно нужно будет установить значок приложения, иначе он будет по умолчанию в проводнике).

astreal
источник
8
Установка обоих параметров хороша, потому что кажется, что они необходимы, чтобы значок отображался как в окне, так и в EXE-файле.
Vimes
3
Просто не забудьте установить значок для действия сборки «Ресурс», как сказал @AdamDylla: stackoverflow.com/a/39897641/1703887
csrowell
4

Примечание: (замените file.ico фактическим именем файла значка)

  1. Добавьте значок в проект с действием сборки «Ресурс».
  2. В свойствах проекта установите для значка приложения значение file.ico.
  3. В основном окне XAML установлено: Icon=".\file.ico"в окне
Адам Дилла
источник
3

После получения XamlParseException с сообщением: «Предоставьте значение для« System.Windows.Baml2006.TypeConverterMarkupExtension » с данными решениями, установка значка программно сработала для меня. Вот как я это сделал:

  1. Поместите значок в папку < icon_path > в каталоге проекта
  2. Имитируйте путь к папке < icon_path > в решении
  3. Добавьте новый элемент (ваш значок) в созданную вами папку решения.
  4. Добавьте следующий код в код окна WPF позади:

Значок = новое BitmapImage (новый Uri ("< icon_path >", UriKind.Relative));

Сообщите мне, если у вас возникнут трудности с внедрением этого решения, чтобы я мог помочь.

Марвин Тобеджейн
источник
Простое исправление этого сообщения об ошибке - установить значок на действие сборки «Ресурс», как сказал @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);
    }
Надим Шейх
источник