41

タイトルの例外は、WPF でウィンドウを開くとスローされます。奇妙なことは、これが Windows 7 開発マシンでも発生せず、Windows 7 に展開されたときにも発生しないことです。

このエラーは Windows XP でのみ表示され、ウィンドウを 2 回目に開いたときにのみ表示されます。

ウィンドウを開くコードは次のとおりです。

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>

誰にも提案はありますか?

4

24 に答える 24

52

解決策はかなり奇妙なものですが、私はそれを理解しました。

ウィンドウの InitializeComponent() でエラーが発生していることに気付き、コンストラクターに try catch を追加して、例外の InnerException を表示しました。

受け取ったエラーは「画像形式が認識されません」です。

これがXPでのみ発生し、ウィンドウが2回目に表示される理由はわかりませんが、.icoを.pngに置き換えることで問題は解決しました。

これが誰かに役立つことを願っています。

于 2012-10-11T07:39:58.133 に答える
8

ボタンのコマンド バインディングが間違っていたため、このエラーが発生しました。

<Button Command="MyCommand" />

それ以外の

<Button Command="{Binding MyCommand}" />
于 2014-02-25T08:40:15.600 に答える
6

最初にイメージをプロジェクトにインポートする必要があります ソリューション エクスプローラー - すべて表示

ここに画像の説明を入力

次に、画像を右クリックして [含める] を選択します。

ここに画像の説明を入力

今すぐ使用終了

于 2016-08-27T21:58:47.450 に答える
2

リソース ディクショナリをアプリケーションのルートからサブディレクトリに移動した後に、この例外が発生しました。私の場合、問題はディクショナリ内のスタイル セッター内のイメージ パスでした。それらの前にスラッシュ「/」を付けた後、アプリケーションは再び機能し始めました。同様の問題が発生している場合は、リソース ディクショナリを開くと、エラーが青い「波線」で強調表示されます。

于 2013-09-23T14:31:09.403 に答える
2

私の場合、「WpfToolkit」参照をモジュールに追加しましたが、その必要はありません。この参照を削除した後、すべて問題ありませんでした。変!

于 2014-01-17T09:35:15.830 に答える
1

私の場合、ファイルはディスク上に存在していましたが、プロジェクトで参照されていませんでした。それらをプロジェクトに追加しましたが、ソリューションをリロードして Visual Studio を再起動してもエラーが続きました。

プロジェクトに既に存在する既存のファイルへの参照を変更したところ、正常に実行されました (グラフィックが間違っていましたが)。その後、元のリファレンスに戻しましたが、正常に動作しましたが、正しいイメージが表示されました。おそらく、システムからフラッシュされるまで、エラーが何らかの形でキャッシュされていたのでしょう...

于 2014-12-12T16:20:16.757 に答える
1

コピー&ペーストでファイル名が変更されます。そのため、このエラーが発生します。

于 2016-06-06T07:14:35.093 に答える
0

user2125523 を改善するには:

イメージをプロジェクトに追加し、ファイルのスペルが正しいことを確認して再確認した場合は、イメージの名前を変更して別の既存のイメージをミラーリングしてみてください。ビルド/実行してから、イメージ ファイル名を元に戻し、再度ビルド/実行します。

LargeImage="/img/32/delete.order.png"例:このファイルが存在するにもかかわらず、元のコードで OP エラーがスローされ続けました。

<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"。やっとエラーが消えました。

参考までに VS2012.3 Win8.1Preview

于 2013-07-11T16:53:48.020 に答える
0

Build ActionProperty画像ファイルを として設定してみてくださいResource

于 2015-04-27T22:17:56.550 に答える
0

私は同じ問題を抱えていました。ソリューションに画像を追加するには、ウィザードを使用する必要があります。ソリューション エクスプローラーで、適切なフォルダーを右クリックし、既存のアイテムを追加し、画像を参照します。それは私のために働いた。お役に立てれば。回答ありがとうございます。

于 2013-07-25T15:53:36.870 に答える
0

コンストラクタ内で例外が発生していました。ボタンのコマンド バインドが正しくありませんでした。例: <Button Command="MyCommand" />--> 間違っている <Button Command="{Binding MyCommand}" />--> 正しい

于 2015-06-08T11:29:32.447 に答える
-2

これは、xaml の非標準タグ オプションがそれを見つけるために発生します。機能 - 試行モード - このように

 try { 
InitializeComponent(); 
} 
catch (Exception ex) { 
MessageBox.Show(ex.Message.ToString()); 
}

now MessageBox(( コントロール .axml ファイルの設定が正しくない行番号を表示します。(修正後、最初の間違った行タグ エラーを表示し、アプリを再度実行して次のエラーを表示します)

于 2017-10-21T16:41:11.767 に答える