0

私はこのコードを書きました:

<Image>
   <Image.Style>
      <Style TargetType="{x:Type Image}">
         <Style.Triggers>
            <DataTrigger Binding="{Binding MyProperty}" Value="Play">
               <Setter Property="Source" Value="bin\debug\Tasto Play.jpeg"/>
            </DataTrigger>
            <DataTrigger Binding="{Binding MyProperty}" Value="Pause">
               <Setter Property="Source" Value="bin\debug\Tasto Pause.jpeg"/>
            </DataTrigger>
         </Style.Triggers>
       </Style>
   </Image.Style>
</Image>

しかし、デバッグを実行するとエラーが発生します。エラーは System.Windows.Baml2006.TypeConverterMarkupExtension です。

MyProperty は文字列です。

誰かが私を助けることができますか?

ありがとう、ヤコポ。

4

2 に答える 2

0

プロジェクトのリソースとして画像を追加するには、[Visual Studio メニュー バー] の [プロジェクト] をクリックし、[プロジェクトのプロパティ] をクリックする必要があります。次に、さまざまなツールバー (インターネットなど) を含むウィンドウが画面に開きます。「リソース ツールバー」を選択し ( http://i.stack.imgur.com/IjC0w.jpgで画像を表示)、ウィンドウの上部にある「リソースの追加」ボタンの近くにある矢印をクリックします。「既存のファイルを追加」をクリックして、ファイルを選択します。次に、「ソリューションの探索ウィンドウ」に移動し、新しいリソースを持つ「デバッグ フォルダー」を開きます。追加した新しいリソースを「マウスの右ボタン」でクリックし、「プロパティ」をクリックします。画面の左側に「プロパティ ウィンドウ」が表示されます。

「コンパイル操作」で「リソース」項目を選択する必要があります。これで、イメージを wpf のリソースとして使用できます。

これが役立つことを願っています。ヤコポ

于 2013-02-05T15:20:05.337 に答える
0

おそらくプロパティのタイプだと思いますMyProperty。文字列の場合は問題ありませんが、たとえば列挙型の場合はタイプを設定する必要があります。

 <Image>
   <Image.Style>
      <Style TargetType="{x:Type Image}">
         <Style.Triggers>
            <DataTrigger Binding="{Binding MyProperty}" Value="{x:Type namespace:EnumType.Play}">
               <Setter Property="Source" Value="bin\debug\Tasto Play.jpeg"/>
            </DataTrigger>
            <DataTrigger Binding="{Binding MyProperty}" Value="{x:Type namespace:EnumType.Pause">
               <Setter Property="Source" Value="bin\debug\Tasto Pause.jpeg"/>
            </DataTrigger>
         </Style.Triggers>
       </Style>
   </Image.Style>
</Image>

おそらくセッタープロパティである可能性があり、ソース(私が思う)はUri型であり、文字列を適切にフォーマットしていない可能性があり、絶対URI(テスト用)を使用する必要があるかもしれませんが、適切にフォーマットされた文字列パスではないと思います。そのため、Xaml のコンバーターは Uri 型を正しく作成できませんでした。

これが役に立てば幸いです。または、アイデアを提供してください。

于 2013-01-24T23:32:28.597 に答える