Подтвердить что ты не робот

"Предоставить значение в" 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>

Есть ли у кого-нибудь предложения?

4b9b3361

Ответ 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. (он просто показывает ошибку первого тега строки после исправления, затем снова запускает приложение и видит следующий)