Эта проблема сводит меня с ума, я действительно понятия не имею, что происходит - почему она не работает, как мне кажется.вставить значок проекта в 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">
, что я могу сделать
http://stackoverflow.com/questions/1832583/embed-multiple-icons-in-wpf-exe – Sajeetharan
Спасибо, но не работает. – user3617652
Вы пробовали действие «EmbeddedResource»? Есть ли какие-либо настройки публикации, которые вы можете попробовать переключить? Только немного намека. – pushpraj