markus / KCOM / Common / ImageAsyncHelper.cs @ 2007ecaa
이력 | 보기 | 이력해설 | 다운로드 (1.66 KB)
1 | c5519c44 | taeseongkim | using System; |
---|---|---|---|
2 | using System.Collections.Generic; |
||
3 | using System.Linq; |
||
4 | using System.Net; |
||
5 | using System.Text; |
||
6 | using System.Threading.Tasks; |
||
7 | using System.Windows; |
||
8 | using System.Windows.Data; |
||
9 | |||
10 | namespace KCOM.Common |
||
11 | { |
||
12 | public class ImageAsyncHelper : DependencyObject |
||
13 | { |
||
14 | public static Uri GetSourceUri(DependencyObject obj) { return (Uri)obj.GetValue(SourceUriProperty); } |
||
15 | public static void SetSourceUri(DependencyObject obj, Uri value) { obj.SetValue(SourceUriProperty, value); } |
||
16 | |||
17 | public static readonly DependencyProperty SourceUriProperty = DependencyProperty.RegisterAttached("SourceUri", typeof(Uri), typeof(ImageAsyncHelper), new PropertyMetadata |
||
18 | { |
||
19 | PropertyChangedCallback = (obj, e) => |
||
20 | { |
||
21 | //if (((System.Windows.Controls.Image)obj).Source == null) |
||
22 | //{ |
||
23 | System.Diagnostics.Debug.WriteLine(e.NewValue); |
||
24 | |||
25 | ((System.Windows.Controls.Image)obj).SetBinding(System.Windows.Controls.Image.SourceProperty, |
||
26 | new Binding("VerifiedUri") |
||
27 | { |
||
28 | Source = new ImageAsyncHelper { GivenUri = (Uri)e.NewValue }, |
||
29 | IsAsync = true, |
||
30 | }); |
||
31 | //} |
||
32 | } |
||
33 | }); |
||
34 | |||
35 | Uri GivenUri; |
||
36 | public Uri VerifiedUri |
||
37 | { |
||
38 | get |
||
39 | { |
||
40 | try |
||
41 | { |
||
42 | //Dns.GetHostEntry(GivenUri.DnsSafeHost); |
||
43 | return GivenUri; |
||
44 | } |
||
45 | catch (Exception) |
||
46 | { |
||
47 | return null; |
||
48 | } |
||
49 | |||
50 | } |
||
51 | } |
||
52 | } |
||
53 | } |