it-swarm.com.ru

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

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

31
Chrisjan Lodewyks

Решение довольно странное, но я разобрался.

Я понял, что ошибка происходит в InitializeComponent () окна, затем я добавил ловушку try в конструктор и показал InnerException исключения. 

Я получил ошибку «Формат изображения не распознан».

Я понятия не имею, почему это происходит только в XP и во второй раз, когда отображается окно, но путем замены моего .ico на .png проблема была решена.

Надеюсь, это кому-нибудь поможет.

43
Chrisjan Lodewyks

Я только что столкнулся с этой проблемой ... Я знаю, что это старый, но я должен был в итоге установить изображения на Resource и Copy Always ... только просматривая папку/bin/Debug, я понял что изображения не были в правильном месте пути

23
Kevin

Эта проблема также может возникнуть, если требуемое изображение недоступно в указанном месте. Поэтому проверьте внутреннее исключение и добавьте любое изображение, которое могло быть пропущено или написано с ошибкой. 

11
user2125523

Я получил эту ошибку, потому что моя командная привязка кнопки была неправильной:

<Button Command="MyCommand" />

вместо

<Button Command="{Binding MyCommand}" />
7
McNos

В моем случае основной причиной было неправильное свойство BuildAction на всех изображениях. Я исправил это, изменив BuildAction с Content на Resource.

4
Ludwo

Я получил это исключение после перемещения моего словаря ресурсов из корня моего приложения в подкаталог. В моем случае проблема была в путях к изображению внутри моих сеттеров стиля внутри словаря. После того, как я поставил перед ними косую черту «/», приложение снова заработало. Если у вас возникла подобная проблема, откройте словарь ресурсов, и ошибка будет выделена синей «волнистой» строкой.

2
Eternal21

В моем случае я добавил ссылку «Wpf Toolkit» в свой модуль, и в этом нет необходимости…. После удаления этой ссылки все было в порядке. Странный!

2
Amit K.S

Просто зайдите в Project> [Your Project Name] Settings и установите свой .ico-файл в качестве значка, теперь ваш .ico-файл упоминается в вашем файле манифеста, и вы можете просто включить .ico-файл в свой XAML-файл, используя 

Icon = "[имя файла значка] .ico" 

<Window  x:Class="[Your project's 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's name].ico">
1
Kamal Hasan

скопируйте и вставьте имя файла изменено. вот почему я получаю эту ошибку.

1
Birkan AYDIN

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

1
Will

Удалите ссылку «WPFToolkit» из вашего файла cs.proj.

<Reference Include="WPFToolkit, Version=3.5.40128.1, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />

Это должно сделать свое дело.

1
nostafict

Вы должны сначала импортировать изображение в ваш проект Solution Explorer - Показать все

enter image description here

затем щелкните правой кнопкой мыши на изображение и выберите Включить

enter image description here

Теперь используйте End

1
soheil momeni

В моем случае файлы существовали на диске, но на них не ссылались в проекте. Я добавил их в проект, но ошибка не исчезла, несмотря на перезагрузку решения и перезапуск Visual Studio.

Я изменил ссылки на существующий файл, который уже был в проекте, и он работал нормально (хотя и с неправильной графикой). Затем я изменил его обратно на исходную ссылку, и он снова работал нормально, но с правильным изображением. Предположительно, ошибка как-то кэшировалась до тех пор, пока она не была удалена из системы ...

1
Buzzwig

Попробуйте установить Build Action из Property файла изображения как Resource.

0
Wei Song

Исключение используется в конструкторе. Привязка команды кнопки была неправильной . Например: <Button Command="MyCommand" />--> Неверный <Button Command="{Binding MyCommand}" />--> Right

0
Kinjal Sheth

У меня была такая же проблема, и чтобы добавить изображение к вашему решению, вы должны сделать это через Wizzard. В обозревателе решений -> щелкните правой кнопкой мыши соответствующую папку -> добавить существующий элемент ->, а затем перейдите к изображению. Это сработало для меня. Надеюсь, что это поможет ... Спасибо за ваши ответы. 

0
Elyas

В моем случае я получил эту ошибку, когда 

<Border Background="eeeeee">

вместо 

<Border Background="#eeeeee">

(обратите внимание на неправильный код #)

0
Josh

Чтобы улучшить user2125523:

Если вы добавили изображение в проект и проверили и дважды проверили правильность написания файла, попробуйте переименовать изображение, чтобы отразить другое существующее изображение. Создайте/запустите, затем верните имя файла образа и снова выполните сборку/запуск. 

Например: Мой оригинальный код продолжал выдавать ошибку 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

0
Owen

Я нашел "UpdateSourceTrigger = Pr" где-то в моем XAML.

Должно быть, это произошло во время редактирования.

Компиляция прошла нормально, без ошибок.

Установка точки останова в Application_DispatcherUnhandledException в app.xaml.cs выявила ошибку.

Исправлено в "UpdateSourceTrigger = PropertyChanged", и мир должен был быть таким.

Я работаю на Win 10 Pro, VS2017

0
Erik