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>

也许可能是 setter 属性,源(我认为)是 Uri 类型,也许你没有很好地格式化字符串,也许你必须使用绝对 uri(用于测试),但我认为它不是一个格式化良好的字符串路径,因此 Xaml 的转换器无法正确创建 Uri 类型。

希望这可以帮助,或者给你一些想法。

于 2013-01-24T23:32:28.597 回答