Beispiel #1
0
        public MainPage()
        {
            this.InitializeComponent();

            ViewModel = new ViewModels.MainViewModel();
            ViewModel.PropertyChanged += ViewModel_PropertyChanged;
            DataContext = ViewModel;
        }
Beispiel #2
0
        internal async Task ShareTargetActivateAsync(ShareTargetActivatedEventArgs args)
        {
            ViewModel = new ViewModels.MainViewModel();
            ViewModel.PropertyChanged += ViewModel_PropertyChanged;
            DataContext = ViewModel;

            // ビットマップファイルの場合
            if (args.ShareOperation.Data.Contains(StandardDataFormats.StorageItems))
            {
                var items = await args.ShareOperation.Data.GetStorageItemsAsync();

                // ToDo: 複数ファイルへの対応
                var file = items.FirstOrDefault() as Windows.Storage.StorageFile;

                await ViewModel.OpenFileAsync(file);
            }

            // ビットマップデータの場合
            else if (args.ShareOperation.Data.Contains(StandardDataFormats.Bitmap))
            {
                var reference = await args.ShareOperation.Data.GetBitmapAsync();

                using (var stream = await reference.OpenReadAsync())
                {
                    await ViewModel.OpenStreamAsync(stream);
                }
            }

            Window.Current.Content = this;
            Window.Current.Activate();

            // [共有]で呼ばれたときは、コマンド実行後にウィンドウを閉じるようにする。[共有]ボタンは無効化
            // ViewModel.FromShare = true; バグのため無効化
            ViewModel.Window       = Window.Current;
            ShareButton1.IsEnabled = false;
            ShareButton2.IsEnabled = false;
        }