2014-07-10 4 views
2

Эта проблема сводит меня с ума, я действительно понятия не имею, что происходит - почему она не работает, как мне кажется.вставить значок проекта в WPF

У меня есть проект WPF C#. Я добавил к моему решению каталог с именем «ExtFiles». Этот каталог содержит ICO-файл, PNG-изображение и TTF-шрифт.

Все три файла имеют «действие сборки», установленное в «resource», и «copy to output dir» установлен в «Do not copy».

Я называю эти 3 файла в XAML через:

Для иконы:

<Window 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     xmlns:chartingToolkit="clr-namespace:System.Windows.Controls.DataVisualization.Charting;assembly=System.Windows.Controls.DataVisualization.Toolkit" x:Class="Swiftech_Imperium.MainWindow" 
     Title="Imp" Height="435" Width="510" ResizeMode="CanMinimize" WindowStartupLocation="CenterScreen" Icon="pack://application:,,,/ExtFiles/imp.ico" 

Для изображения:

<Image HorizontalAlignment="Left" Width="278" Height="30" Margin="9,401,0,0" VerticalAlignment="Top" Source="pack://application:,,,/ExtFiles/Logo.png"/> 

И для шрифта:

<Label x:Name="LabelTemp1" BorderBrush="#FFFFA421" BorderThickness="1" FontFamily="pack://application:,,,/ExtFiles/#DS-Digital" Height="30" 

Все работает, без ошибок. Изображение отображается, значок тоже, шрифт работает.

Но когда я публикую, он генерирует каталог ExtFile с иконкой в ​​нем. Почему это? Моя цель состоит в том, чтобы все 3 файла были встроены в EXE. Моя цель - развернуть программу, используя один EXE-файл, и ничто иное, как требование пользователей.

Все эти 3 файла вызываются только в XAML и нигде, я не понимаю, почему это работает отлично для изображения и шрифта, но не для значка ...

Любая идея?

Благодаря Стив

Edit: Я попытался это: Embed multiple icons in WPF EXE (последний ответ), но он не работает.

Icon="/Resources/Imp.ico" 

Source="/Resources/Logo.png" 

FontFamily="/Resources/#DS-Digital" 

Я получаю эту ошибку (только значок, если я могу Икона = «..» из начинается, но изображения и шрифт не применяется ...

'System.Windows.Baml2006.TypeConverterMarkupExtension' threw an exception.' Line number '5' and line position '9'. 

I добавлено 3 файла в качестве ресурсов (Resource, добавить файл) и установите их действие сборки на «ресурс»

редактировать:.

ОК ... Я двинулся вперед чуть-чуть

.

Я добавил обе библиотеки DLL (да, два!) К ресурсам. Перемещено изображение/значок/шрифт в отдельную папку (что, вероятно, не понадобилось).

но я все еще получал ту же ошибку (разбор).

Оказывается, это мой XAML, который вызывает вторую DLL (которую я изначально забыл добавить к ресурсам).

Теперь, когда обе библиотеки DLL в качестве ресурсов, если я перейду в Список литературы и установили обе эти копии библиотеки DLL в False, я получаю сообщение об ошибке. Я могу поместить первую dll (WPFToolkit.dll) в false, но я не могу сделать для system.windows.controls.datavisualization.toolkit.длл :(

причина почему потому что XAML зовет его:

<Window 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     xmlns:chartingToolkit="clr-namespace:System.Windows.Controls.DataVisualization.Charting;assembly=System.Windows.Controls.DataVisualization.Toolkit" x:Class="Imperium.MainWindow" 
     Title="Imperium" Height="435" Width="510" ResizeMode="CanMinimize" WindowStartupLocation="CenterScreen" Icon="pack://application:,,,/ExtFiles/Imp.ico" Closing="Window_Closing" MouseDown="Grid_MouseDown" WindowStyle="None" BorderThickness="1" BorderBrush="Black" Foreground="Black"> 

, что я могу сделать

+0

http://stackoverflow.com/questions/1832583/embed-multiple-icons-in-wpf-exe – Sajeetharan

+0

Спасибо, но не работает. – user3617652

+0

Вы пробовали действие «EmbeddedResource»? Есть ли какие-либо настройки публикации, которые вы можете попробовать переключить? Только немного намека. – pushpraj

ответ

0

Ваш пакет URN был неправ значок Это должно быть:?.

pack: // application: ,,,/(квалифицированное название сборки, т.е. My.Project.Executable); компонент/extFiles/imp.ico

Когда вы добавляете файл в папку проекта VS, вы должны установить его как Resource с Do Not Copy.

То же самое относится и к изображению, и к шрифту - tho 'Я бы также сказал, что я не загружал шрифт, используя прямую ссылку, как это, и я не уверен, что он работает так.

0

Попробуйте следующее: Работа с ресурсами будет другим подходом для достижения той же задачи. Я хотел бы предоставить вам ссылку для чтения определенных статей msdn.

Adding and Editing Resources (Visual C#)

+0

Обратите внимание, что [ссылки только ответов] (http://meta.stackoverflow.com/tags/link-only-answers/info) обескуражены, ответы SO должны быть конечной точкой поиска решения (vs. еще одна остановка ссылок, которые со временем становятся устаревшими). Пожалуйста, подумайте о добавлении отдельного синопсиса здесь, сохранив ссылку как ссылку – kleopatra

+0

@ Kleopatra Ok Я буду –

Смежные вопросы