"Предоставить значение в" System.Windows.Baml2006.TypeConverterMarkupExtension "выбрасывает исключение".
Исключение в заголовке бросается, когда я открываю окно в WPF, странно, что этого не происходит на моей машине разработки Windows 7 и не происходит, когда она развертывается в Windows 7.
Я получаю эту ошибку только в Windows XP и только второй раз, когда я открываю окно.
Вот код для открытия окна:
ReportParametersWindow win = null;
bool canOverWrite = _shownReports.Contains(rpt.FriendlyName);
if (!(canOverWrite))
win = new ReportParametersWindow(rpt.FriendlyName, rpt.ReportParameters, canOverWrite);
else
win = new ReportParametersWindow(rpt.FriendlyName, (container.ParametersWindow as ReportParametersWindow).Controls, canOverWrite);
win.ShowDialog();
И XAML для окна:
<Window xmlns:my="clr-namespace:MHA.Modules.Core.Controls;assembly=MHA.Modules.Core"
x:Class="MHA.Modules.Reports.Views.ReportParametersWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Parameters" Height="500" Width="600" MinWidth="500" MaxHeight="500"
Icon="/MHA.Modules.Reports;component/Images/Parameters.ico" SizeToContent="WidthAndHeight"
WindowStartupLocation="CenterScreen"
xmlns:odc="clr-namespace:Odyssey.Controls;assembly=Odyssey" Closed="Window_Closed">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="40"/>
</Grid.RowDefinitions>
<ScrollViewer Grid.Row="0" Name="ScrollViewer1" VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto" CanContentScroll="True">
<StackPanel Name="ParameterStack">
<my:LocationCtl Text="Parameters for report - " Name="loc"/>
</StackPanel>
</ScrollViewer>
<Grid Grid.Row="1">
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<CheckBox ToolTip="This will replace the first report of the same type that was shown." Name="chkOverwrite" Content="Overwrite old" VerticalAlignment="Center" Margin="5,0"></CheckBox>
<Button Grid.Column="2" HorizontalAlignment="Right" Margin="5,0" Height="30" Style="{StaticResource DionysusButton}" Width="100" IsDefault="True" Click="Button_Click">
<StackPanel Orientation="Horizontal">
<Image Source="/MHA.Modules.Reports;component/Images/Success.png"></Image>
<TextBlock Margin="5,0" Text="Accept" VerticalAlignment="Center"></TextBlock>
</StackPanel>
</Button>
</Grid>
</Grid>
Есть ли у кого-нибудь предложения?
Ответы
Ответ 1
Решение довольно странное, но я понял.
Я понял, что ошибка произошла в InitializeComponent() окна, затем я добавил попытку catch в конструктор и показал InnerException исключения.
Ошибка, которую я получил, это "Формат изображения не распознан".
Я понятия не имею, почему это происходит только на XP, и во второй раз, когда отображается окно, но, заменив мой .ico на .png, проблема была решена.
Надеюсь, это поможет кому-то.
Ответ 2
Я тоже столкнулся с этой проблемой... Я знаю, что это старо, но то, что я должен был сделать, это установить изображения в Resource и Copy Always... только путем просмотра папки my/bin/Debug я понял, что изображения не были в допустимом местоположении пути
Ответ 3
Эта проблема также может возникать, если требуемое изображение недоступно в указанном месте. Итак, проверьте внутреннее исключение и добавьте любое изображение, которое может быть пропущено или написано неправильно.
Ответ 4
Я получил эту ошибку, потому что моя команда Binding Button была неправильной:
<Button Command="MyCommand" />
вместо
<Button Command="{Binding MyCommand}" />
Ответ 5
В моем случае основной причиной было неправильное свойство BuildAction для всех изображений. Я исправил это, изменив BuildAction от Content to Resource.
Ответ 6
Вы должны сначала импортировать изображение в свой проект
Обозреватель решений - Показать все
![enter image description here]()
затем щелкните правой кнопкой мыши по изображению и выберите "Включить"
![enter image description here]()
Теперь используйте
конец
Ответ 7
Я получил это исключение, переместив словарь ресурсов из корня моего приложения в подкаталог. В моем случае проблема заключалась в пути изображения внутри моих стилейщиков внутри словаря. После того, как мне предшествовала косая черта '/', приложение снова принялось за работу. Если у вас возникла аналогичная проблема, откройте словарь ресурсов, и ошибка будет выделена синей "squiggly" линией.
Ответ 8
В моем случае я добавил "WpfToolkit" refrence к моему модулю, и нет необходимости.
После удаления этой ссылки все было в порядке. Странно!
Ответ 9
Просто зайдите в Project > [Your Project Name] Settings и установите ваш .ico файл как значок, теперь ваш файл .ico указан в вашем файле манифеста, и вы можете просто включить ваш .ico файл в ваш файл XAML, используя
Значок = "[имя файла значка].ico"
<Window x:Class="[Your project name].MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="" Height="500" Width="720"
Icon="[your icon name].ico">
Ответ 10
В моем случае, я обнаружил, что добавленный mew файл с иконкой (изображением) не добавлен в мой проект. Он разрешен после добавления этих новых файлов изображений в мой проект, а не только для копирования файлов.
Ответ 11
В моем случае файлы существовали на диске, но не упоминались в проекте. Я добавил их в проект, но ошибка сохранилась, несмотря на перезагрузку решения и перезапуск Visual Studio.
Я изменил ссылки на существующий файл, который уже был в проекте, и он работает нормально (хотя и с неправильной графикой). Затем я изменил его на исходную ссылку, и он снова начал работать отлично, но с правильным изображением. Предположительно, ошибка была как-то кеширована, пока она не вышла из системы...
Ответ 12
Удалите ссылку "WPFToolkit" из файла cs.proj.
<Reference Include="WPFToolkit, Version=3.5.40128.1, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
Он должен сделать трюк.
Ответ 13
скопировать и вставить имя файла. поэтому я получаю эту ошибку.
Ответ 14
Чтобы улучшить работу с пользователем2125523:
Если вы добавили изображение в проект и отметили и дважды отметили правильность написания файла, попробуйте переименовать изображение, чтобы зеркалировать другое существующее изображение. Создайте/запустите, затем верните свое имя файла изображения и снова запустите/запустите.
Например:
Мой исходный код продолжал бросать ошибку OP на LargeImage="/img/32/delete.order.png"
, хотя этот файл существует.
<telerik:RadRibbonButton Text="Object Properties" Size="Large"
Name="PropertiesButton" IsTabStop="True"
telerik:ScreenTip.Description="Get object properties"
Click="PropertiesButton_Click"
LargeImage="/img/32/properties.png"
SmallImage="/img/16/properties.png" />
<telerik:RadRibbonButton Text="Reset Tab Order" Size="Large"
Name="ClearTabOrderButton" IsTabStop="True"
telerik:ScreenTip.Description="Reset tab order of all fields"
Click="ClearTabOrder_Click"
LargeImage="/img/32/delete.order.png"
SmallImage="/img/16/delete.order.png" />
Итак, я изменил LargeImage="/img/32/delete.order.png"
на LargeImage="/img/32/properties.png"
, запустил программу и поменял ее на "/img/32/delete.order.png"
. Наконец ошибка исчезла.
FYI VS2012.3 Win8.1Preview
Ответ 15
У меня была такая же проблема, и я добавил вам решение, которое вы должны сделать с помощью wizzard. В проводнике решений → щелкните правой кнопкой мыши по соответствующей папке → добавьте существующий элемент → , а затем перейдите к своему изображению. Это сработало для меня. Надеюсь это поможет.
Спасибо за ответы.
Ответ 16
Попробуйте установить Build Action
из Property
файла изображения как Resource
.
Ответ 17
Исключение используется в конструкторе. Неправильная привязка к кнопке.
Например: <Button Command="MyCommand" />
→ Неправильно
<Button Command="{Binding MyCommand}" />
→ Вправо
Ответ 18
В моем случае я получил эту ошибку, когда у меня был
<Border Background="eeeeee">
вместо
<Border Background="#eeeeee">
(обратите внимание на missign #
)
Ответ 19
Я нашел "UpdateSourceTrigger = Pr" где-то в моем XAML.
Должно быть, это произошло во время редактирования.
Компиляция прошла нормально, без ошибок.
Установка точки останова в Application_DispatcherUnhandledException в app.xaml.cs выявила ошибку.
Исправлено в "UpdateSourceTrigger = PropertyChanged", и мир должен был быть таким.
Я работаю на Win 10 Pro, VS2017
Ответ 20
Я столкнулся с этой ошибкой и выяснил, что формат пути источника изображения содержит ошибку. косая черта /
была добавлена следующим образом:
Source="/TestProject;component/Images//hat_and_book.png
Я удалил лишнюю косую черту, и ошибка исчезла.
Ответ 21
ну, в моем случае я добавил новые фотографии в папку изображений в FileExplore, в то время как папка изображений была добавлена в проект некоторое время назад. и не было никаких проблем с путем изображения в проекте. но когда я строю проект, я сталкиваюсь с той же ошибкой. затем я добавляю эти новые фотографии в проект, щелкнув правой кнопкой мыши на папке изображений и добавив существующий элемент и выбранные новые фотографии. затем я очистил решение и собрал его снова.
Ответ 22
это вызвано опцией нестандартного тега в xaml, чтобы найти его установленным
InitializeComponent();
Режим работы в режиме - вроде этого
try {
InitializeComponent();
}
catch (Exception ex) {
MessageBox.Show(ex.Message.ToString());
}
now MessageBox ((показать номер строки с неправильной настройкой в файле управления .axml. (он просто показывает ошибку первого тега строки после исправления, затем снова запускает приложение и видит следующий)