0

我有一些堆栈面板。每个堆栈面板都有一个图像标签。代码如下所示:

....
<StackPanel>
     <Image Source="/Puzzle15;component/Images/Themes/Easy/p5.png" Tag="5"/>
</StackPanel>

<StackPanel>
     <Image Source="/Puzzle15;component/Images/Themes/Easy/p6.png" Tag="6"/>
</StackPanel>

<StackPanel>
     <Image Source="/Puzzle15;component/Images/Themes/Easy/p7.png" Tag="7"/>
</StackPanel>
...

我想通过使用代码获取图像源值

for(int i = 0; i <= 14; i++)
{
    String s = ((Image)((StackPanel)ContentPanel.Children[i]).Children[0]).Source.ToString();
    MessageBox.Show(s);
}

结果显示“System.Windows.Media.Imaging.BitmapImage”

你能告诉我获取源值的方法吗?谢谢!

4

1 回答 1

1
var bms = ((Image)((StackPanel)ContentPanel.Children[i])
          .Children[0]).Source as BitmapImage;
var addy = bms.UriSource.ToString();

顺便说一句,您这样做的方式与 WPF(以及 silverlight、WP、Modern UI 等)编程是对立的。我强烈建议您阅读一些教程,了解“视图模型”的含义以及如何使用绑定。你最终会过得更好。

于 2013-02-21T15:39:12.210 回答