You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

UWP中如何从同一FrameworkElement属性引用本地ResourceDictionary

在同一FrameworkElement中引用本地ResourceDictionary的方法

问题原因

出现The resource "txt" could not be resolved错误的核心原因是WPF的StaticResource采用加载时解析机制:当TextBlock的Text属性被初始化时,它的本地Resources字典还未完成加载,因此无法找到txt资源。

可行解决方案

1. 使用DynamicResource替代StaticResource

DynamicResource是运行时延迟查找资源,此时元素的本地资源已经加载完毕,能够正确匹配到目标资源:

<TextBlock Text="{DynamicResource txt}">
    <TextBlock.Resources>
        <x:String x:Key="txt">asdf</x:String>
    </TextBlock.Resources>
</TextBlock>

2. 调整XAML结构,先定义资源再绑定属性

通过显式的属性嵌套写法,让Resources先完成初始化,再解析Text属性的StaticResource:

<TextBlock>
    <TextBlock.Resources>
        <x:String x:Key="txt">asdf</x:String>
    </TextBlock.Resources>
    <TextBlock.Text>
        <StaticResource ResourceKey="txt"/>
    </TextBlock.Text>
</TextBlock>

这种写法改变了XAML的解析顺序,确保资源先于引用它的属性被加载。

关于CustomResource的补充

CustomResource需要手动实现并注册自定义资源加载器,属于进阶场景,针对你当前的需求完全没必要,反而会增加代码复杂度,不推荐使用。


内容的提问来源于stack exchange,提问作者ridilculous

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 04:35:29