从Window.Resources获取图像源

时间:2014-07-19 18:08:18

标签: wpf image vba enums

我正在尝试在WPF应用程序上直观呈现卡片。 卡片是包含两个枚举的对象:(1)_suit和(2)_value。 我希望每次从堆中抽取卡片时,我的XAML中的Image元素(称为 player1curCardSuit )会将其源代码更改为相应的card._value。

我正在尝试使用Window.Resources。这就是我在XAML中所拥有的:

<Window.Resources>
    <Image x:Key="heart" Source="/images/heart.jpg" Height="50" Width="50" />
    <Image x:Key="club" Source="/images/club.jpg" Height="50" Width="50" />
    <Image x:Key="diamond" Source="/images/diamond.jpg" Height="50" Width="50" />
    <Image x:Key="spade" Source="/images/spade.jpg" Height="50" Width="50"/>
</Window.Resources>

这就是我在VB代码中的内容:

player1curCardSuit.Source = FindResource(player1.getCurCard.getSuit)

getSuit返回当前卡的名为_suit(Enum成员)的对象。 当我运行程序并绘制卡片时,我收到一个错误:

在PresentationFramework.dll中发生

'System.Windows.ResourceReferenceKeyNotFoundException' 附加信息:找不到“spade”资源。

*'spade'是我从getSuit获得的Enum值。

1 个答案:

答案 0 :(得分:0)

首先,将您的资源转换为BitmapImage个对象而不是Image控件(因为您不会将UI元素用作典型WP应用程序中的资源),并设置{{1} Width上的}和Height属性:

player1curCardSuit

然后按键字符串查找资源,而不是枚举值:

<Window.Resources>
    <BitmapImage x:Key="heart" UriSource="/images/heart.jpg" />
    <BitmapImage x:Key="club" UriSource="/images/club.jpg" />
    <BitmapImage x:Key="diamond" UriSource="/images/diamond.jpg" />
    <BitmapImage x:Key="spade" UriSource="/images/spade.jpg" />
</Window.Resources>