XAML 如何在UWP中从同一FrameworkElement的属性中引用本地资源字典

gwbalxhn  于 2022-12-07  发布在  其他
关注(0)|答案(1)|浏览(147)

是否有方法从同一FrameworkElement的属性中引用本地ResourceDictionary
我尝试了以下方法

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

但得到了误差
无法解析资源“txt”。
将txt资源从TextBlock移动到Page资源是可行的,但这似乎很混乱,我希望可以引用FrameworkElement的本地ResourceDictionary
使用CustomResource而不是StaticResource至少允许自动完成 txt,但它不起作用,因为调用Initializecomponent会抛出异常:“* 没有设置自定义资源加载器 *”,我不确定实现和设置自定义加载器是否能解决这个问题。
是否有一种方法可以使用本地资源字典来实现这一点?

lxkprmvk

lxkprmvk1#

UWP FrameworkElement资源查找查找父控件资源,而不是子控件资源。
本文档详细介绍了Resources的工作原理。

编辑

建议使用资源字典文件。
1.右键单击您的项目
1.选择添加
1.选择资源字典。
你可以把你所有的资源放在这个文件里。
然后在App.xaml中加入资源档指涉。

字典1.xaml

<ResourceDictionary
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">

   <Style x:Key="txt" TargetType="TextBlock">
        <Setter Property="Text" Value="asdf"/>
    </Style>

</ResourceDictionary>

应用程序xaml

<Application.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="Dictionary1.xaml"/>
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</Application.Resources>

页面.xaml

<TextBlock Style="{StaticResource txt}" ></TextBlock>

相关问题