예제 #1
0
        public AppModel()
        {
            // JPEG ファイルは DPI が異なる場合があります (既定では 96 だが、72 などもある)。
            // Image コントロールに直接読み込ませると、DPI によりサイズが変化してしまいます。
            ImageUrl
            .Subscribe(u =>
            {
                var image = new BitmapImage(new Uri(u));

                // ダウンロードの要否で分岐します。
                if (image.IsDownloading)
                {
                    image.DownloadCompleted += (o, e) => BitmapImage.Value = image;
                }
                else
                {
                    BitmapImage.Value = image;
                }
            });
            ImageUrl
            .Subscribe(_ => DetectAsync());

            IsImageEmpty = ImageUrl
                           .Select(u => u == null)
                           .ToReadOnlyReactiveProperty(true);
        }