装我要带一旦图像加载,这里的快照是一个代码段:如何检查如果图像在Silverlight
imageBrush.ImageOpened + =(发件人,E) = > { doSomething(); };
这个代码片段的一个问题是,如果图像刷已经加载,事件不会被解雇,所以我需要一种方法来验证图像已经加载,但似乎没有“IsLoaded “在silverlight的财产。你能提出一个简单的解决方法吗?
装我要带一旦图像加载,这里的快照是一个代码段:如何检查如果图像在Silverlight
imageBrush.ImageOpened + =(发件人,E) = > { doSomething(); };
这个代码片段的一个问题是,如果图像刷已经加载,事件不会被解雇,所以我需要一种方法来验证图像已经加载,但似乎没有“IsLoaded “在silverlight的财产。你能提出一个简单的解决方法吗?
您可以检查Image
控件的Width属性是否为非零来测试其加载。
这可能是因此,你也可以使用BitmapSource
PixelWidth
属性来执行相同的测试: -
bool isLoaded = ((BitmapSource)ImageBrush.ImageSource).PixelWidth == 0;
我没有这个测试自己,但它似乎是合乎逻辑。
感谢您的回复,但我还有一个问题,我想知道您是否可以帮助我解决这个问题。 接收到来自服务器的画布,并通过搜索路径从画布中提取图像画笔。 综上所述,Canvas - > Path - > Path.Fill - > ImageBrush。 现在,我想用WriteableBitmap的加载时采取图像刷的快照,并在这里是我做过什么 – umlgorithm 2010-04-08 13:13:14
VAR imageBrushes = VisualTreeUtility.FindVisualChildren
@umlgorithm:这将是非常非常好因为你可以发布另一个问题,而不是尝试在回答中挤压注释和其他问题,因为你可以看到代码在评论中格式不是很好。评论实际上是用于讨论具体的答案或问题,或者是针对澄清答案的小问题。 – AnthonyWJones 2010-04-08 14:36:26
检查实际高度或宽度是否不同? – 2010-04-08 06:38:29
你能解释你如何使用'ImageBrush'拍摄快照吗?你为什么不使用'Image'控件?我相信杰夫在他的评论中提到了“图片”控件。假设您没有自己设置,图像控件Width属性将保持为0,直到源完全加载。 – AnthonyWJones 2010-04-08 06:57:34