使用触发器更改图像,获取 System.Windows.Baml2006.TypeConverterMarkupExte
本文关键字:System 获取 Windows Baml2006 TypeConverterMarkupExte 图像 触发器 | 更新日期: 2023-09-27 17:55:43
>我写了这段代码:
<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
属性类型:如果是字符串,则没有问题,但如果是,例如枚举,则必须设置类型:
<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 类型。
希望这能有所帮助,或者给你一些想法。
要将图像添加为项目中的资源,您必须单击"Visual Studio菜单栏"中的"项目",然后单击"项目的属性"。然后,屏幕上将打开一个带有各种工具栏(如互联网)的窗口。选择"资源工具栏"(在 https://i.stack.imgur.com/IjC0w.jpg 查看图片),然后单击窗口顶部的"添加资源"按钮附近的箭头。单击"添加现有文件"并选择文件。然后,进入"浏览解决方案窗口"并打开将包含新资源的"调试文件夹"。用"鼠标右键"单击已添加的新资源然后点击"属性"。在屏幕左侧将出现一个"属性窗口"。(在 https://i.stack.imgur.com/NqIc1.jpg 查看图片)
您必须在"编译操作"中选择"资源"项。现在,您可以将映像用作 wpf 中的资源。
我希望这会有所帮助。雅各布