仅当我将<ImageSource x:key="...">
图像资源文件</ImageSource>
添加到</ImageSource>
部分时,才会出现此错误。但是,程序在运行时运行良好,没有任何问题。
之前(原始代码=> 0错误):
<Application.Resources>
<FontFamily x:Key="NotoBold">
fonts/NotoSerifCJKtc-Bold.otf#Noto Serif CJK TC Bold
</FontFamily>
<Style x:Key="HeaderTitle" TargetType="TextBlock">
<Setter Property="Grid.Column" Value="0" />
<Setter Property="HorizontalAlignment" Value="Left" />
<Setter Property="VerticalAlignment" Value="Center" />
<Setter Property="FontSize" Value="18" />
<Setter Property="FontFamily" Value="{StaticResource NotoBold}" />
<Setter Property="Foreground" Value="White" />
</Style>
... ...
... ...
... ...
</Application.Resources>
后(添加了ImageSource xkey='RedCircle1‘=> 1错误):
<Application.Resources>
<FontFamily x:Key="NotoBold">
fonts/NotoSerifCJKtc-Bold.otf#Noto Serif CJK TC Bold
</FontFamily>
<ImageSource x:Key="RedCircle1">
images/sample/circleRed1.png
</ImageSource>
<Style x:Key="HeaderTitle" TargetType="TextBlock">
<Setter Property="Grid.Column" Value="0" />
<Setter Property="HorizontalAlignment" Value="Left" />
<Setter Property="VerticalAlignment" Value="Center" />
<Setter Property="FontSize" Value="18" />
<Setter Property="FontFamily" Value="{StaticResource NotoBold}" />
<Setter Property="Foreground" Value="White" />
</Style>
... ...
... ...
... ...
</Application.Resources>
错误提示出现在<Style x:Key="HeaderTitle" ... >
上。如果我将setter value="{StaticResource NotoBold}"更改为其他东西(例如,value="Verdana"),则错误将消失。
错误消息: MarkupExtension对Setter.Value无效。唯一受支持的MarkupExtension类型是DynamicResourceExtension和BindingBase或派生类型。
更新
我的.Net版本是4.8.03752,VisualStudio2019版本是16.8.3。我所有的资源文件(Noto字体和circleRed1.png)它们的构建操作都是“参考资料”。
重新制造问题的步骤。
<application.resources>
部分。(直到这一步,一切都还好,没有出现任何错误消息。)我的临时解决方案:
现在每次调试之后,我必须再次修复所有的东西,否则我的xaml设计器视图将无法正确显示(一些控件它们的样式属性不会生效)。
发布于 2021-04-15 09:10:05
请尝试修改代码如下:
<Setter Property="FontFamily" Value="{DynamicResource NotoBold}" />
在实际运行应用程序之前,StaticResource将在加载XAML期间解析并分配给该属性。它将只分配一次,而对资源字典的任何更改都将被忽略。
在加载过程中,DynamicResource将表达式对象分配给属性,但在请求表达式对象时才实际查找资源。这将延迟查找资源,直到在运行时需要它。您可以根据具体情况分析使用DynamicResource还是StaticResource
https://stackoverflow.com/questions/67023951
复制相似问题