gpt4 book ai didi

wpf - 在自定义控件库的 Generic.xaml 文件中使用应用级资源

转载 作者:行者123 更新时间:2023-12-04 05:08:51 30 4
gpt4 key购买 nike

我在自定义控件上有一个按钮,我试图在其上显示一个图像,该图像在我的 App.xaml 文件中定义为资源,如下所示:

<Application.Resources>
<BitmapImage x:Key="PlusSymbol" UriSource="Resources/PlusSymbol.png" />
</Application.Resources>

由于某种原因,我不能在 Themes\Generic.xaml 文件中定义的自定义控件模板中将其用作静态资源,它在运行时使我的应用程序崩溃,说它找不到请求的资源。这是我用来绑定(bind)到资源的 xaml 代码:
<Button Grid.Row="0" Grid.Column="1" Margin="3">
<Image Source="{StaticResource PlusSymbol}"/>
</Button>

如果我以完全相同的方式但在 Generic.xaml 文件中定义资源,它确实在运行时工作,但是它给了我一个预编译器警告它找不到该文件,因为它现在正在主题/资源/中寻找它而不仅仅是在/Resources/中。所以我在设计时收到警告,但它在运行时工作正常。

那么为什么它在 App.xaml 中定义时找不到我的资源?我在常规 WPF 项目中以完全相同的方式执行此操作,并且它完美地工作,但在这个自定义控件库中,它让我很头疼。任何帮助深表感谢!

最佳答案

如果您切换 StaticResource,这应该可以工作。至DynamicResource这样资源将在运行时动态评估,而不是静态评估。如果切换到 DynamicResource .

<Button Grid.Row="0" Grid.Column="1" Margin="3">
<Image Source="{DynamicResource PlusSymbol}"/>
</Button>

我相信这是因为如何处理基于主题的样式和模板,而不是标准资源。 This answerthis answer专门谈谈 Generic.xaml 以及它与其他 ResourceDictionaries 的不同之处.

关于wpf - 在自定义控件库的 Generic.xaml 文件中使用应用级资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15142122/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com