C# ResourceDictionary 根据key 查找对应的 name
时间: 2024-09-16 09:05:33 浏览: 48
在C#中,ResourceDictionary是一种用于存储资源文件(如XAML样式、图像、字符串等)的对象,它允许你在应用程序中通过键(Key)轻松地访问相关的资源。当你需要根据一个特定的键查找对应的名称(通常是资源的标识符)时,你可以这样做:
1. 首先,在你的资源文件(例如App.xaml、Controls.xaml或某个特定命名空间下的Resources.xaml)里,定义资源项,并给它们分配一个唯一的Key,比如`"MyImage"`。
```xml
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<BitmapImage x:Key="MyImage">Assets/myimage.png</BitmapImage>
</ResourceDictionary>
```
2. 然后,在你的代码中,你可以使用`Application.Current.Resources`属性,结合`[DependencyProperty]`或静态属性`FindResource()`来查找指定的Key:
```csharp
BitmapImage myImage = (BitmapImage)Application.Current.Resources["MyImage"];
string imageName = ((FrameworkElement)myImage).Source.ToString(); // 如果图片资源是依赖元素来源
```
3. 如果你想动态查找,可以在运行时使用`FindName`方法,但它通常用于UI元素查找而不是ResourceDictionary:
```csharp
string resourceName = FindName("MyImage", ResourcesDictionaryLocation.Application);
```
阅读全文