我写了这段代码:
<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是字符串。
有人可以帮助我吗?
谢谢, 雅格布。
答案 0 :(得分: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属性,source(我认为)属于Uri类型,也许你没有很好地格式化字符串,也许你必须使用absulute uri(用于测试),但我认为它格式不是很好字符串路径,因此Xaml的转换器无法正确创建Uri类型。
希望这可以有所帮助,或者给你一些想法。
答案 1 :(得分:0)
要在项目中添加图像作为资源,您必须单击“Visual Studio菜单栏”中的“项目”,然后单击“项目属性”。 然后会在屏幕上打开一个带有各种工具栏(如互联网)的窗口。 选择“资源工具栏” (查看http://i.stack.imgur.com/IjC0w.jpg处的图片) 然后单击窗口顶部“添加资源”按钮旁边的箭头。 单击“添加现有文件”,然后选择该文件。 然后进入“浏览解决方案窗口”并打开将具有新资源的“调试文件夹”。 在已添加的新资源上单击“鼠标右键” 然后单击“属性”。 在屏幕的左侧将出现“属性窗口”。 (查看http://i.stack.imgur.com/NqIc1.jpg处的图片)
您必须在“资源”项目中选择“编制操作”。 现在,您可以将图像用作wpf中的资源。
我希望这可以有所帮助。 雅格布