裝我要帶一旦圖像加載,這裏的快照是一個代碼段:如何檢查如果圖像在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