画像の一覧表示と、ListBoxに表示されたYoutubeの再生を試す
書き出されるXAMLコードはリスト1のようになります。
リスト1 書き出されたされたXAMLコード(MainPage.xaml)
- (1)
要素のHorizontalScrollBarVisibilityプロパティにVisibleと指定しています。 - (2)
要素のFlowDirectionプロパティにLeftToRightと指定しています。Widthに1920、Height=520と指定しています。
<Page x:Class="Win8_OldRecord.MainPage" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="using:Win8_OldRecord" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d" Width="1920"> <Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}"> <ScrollViewer Width="2500" HorizontalScrollBarVisibility="Visible" Margin="0,0,-580,0">■(1) <GridView x:Name="GridView1" HorizontalAlignment="Left" VerticalAlignment="Center" FlowDirection="LeftToRight" Height="520" Width=”1920” />■(2) </ScrollViewer>■(1) </Grid> </Page>
次に、ソリューションエクスプローラー内のMainWindow.xamlを展開して表示される、MainWindow.xaml.vbをダブルクリックしてリスト3のコードを記述します。
ロジックコードを記述する
リスト3 (MainWindow.xaml.vb)
Option Strict On
ファイル、フォルダ、およびアプリケーションの設定を管理するWindows.Storage名前空間をインポートします。
Imports Windows.Storage
ページがアクティブになった時の処理
KnownFolders.PicturesLibraryでピクチャライブラリフォルダを取得後、CreateFolderAsyncメソッドで、そのフォルダの中にageRecordsというサブフォルダを作成します。
CreateFolderAsyncメソッドは、現在のフォルダ内に新しいサブフォルダを作成、現在のフォルダに同じ名前を持つフォルダが既に存在していた時のために、CreationCollisionOption.OpenIfExistsと指定します。
CreationCollisionOption.OpenIfExistsは、既に同名フォルダが存在する場合は、そのフォルダ名を返します。
ageRecordsというサブフォルダがない場合は、ageRecordsサブフォルダを作成してくれます。
CreationCollisionOption.OpenIfExistsを指定していないとエラーになりますので、注意してください。ここに指定する他の値については、下記のURLを参照してください。
→ CreationCollisionOption enumeration
GetFilesAsyncメソッドでageRecords内のファイルを取得し、IstorageFile型のIReadOnlyListであるmyPictureFilesに格納します。GetFilesAsyncメソッドは現在のフォルダのファイルを取得するメソッドです。
IReadOnlyList(Of Out T)はインデックスによってアクセス可能な読み取り専用のコレクションを表します。
ageRecordsフォルダ内のファイル一覧を格納しているmyPictureFilesコレクション内のファイルを、 IStorageFile型(ファイルを表します)の変数myFileで取得しながら以下の処理を行います。
新しいBitmapImageクラスのインスタンスbmpオブジェクトを作成します。SetSourceメソッドにmyFile.OpenReadAsyncと指定して、IStorageFile型の変数myFileの取得したファイルを開きます。
新しいImageクラスのインスタンスmyImageオブジェクトを作成します。
WidthとHeight、Stretchプロパティを指定します。Sourceプロパティには、開かれたファイルを参照しているbmpオブジェクトを指定します。GridViewにmyImageオブジェクトを指定します。これで、ピクチャライブラリフォルダ内のサブフォルダageRecords内の画像ファイルが一覧で表示されます。
非同期処理になりますので、メソッドの最初にAsyncを追加します。
Protected Overrides Async Sub OnNavigatedTo(e As Navigation.NavigationEventArgs) Dim pictureFolder As StorageFolder = KnownFolders.PicturesLibrary Dim pictureSubFolder As StorageFolder = Await pictureFolder.CreateFolderAsync("ageRecords", CreationCollisionOption.OpenIfExists) Dim myPictureFiles As IReadOnlyList(Of IStorageFile) = Await pictureSubFolder.GetFilesAsync() For Each myFile As IStorageFile In myPictureFiles Dim bmp As New BitmapImage bmp.SetSource(Await myFile.OpenReadAsync) Dim myImage As New Image myImage.Width = 500 myImage.Height = 520 myImage.Stretch = Stretch.None myImage.Source = bmp GridView1.Items.Add(myImage) Next End Sub End Class
画像を一覧表示するサンプルは以上です。今回は、もう1つのサンプルを紹介します。
画像を横一列に表示するサンプルアプリ
ListBoxに表示されたYoutube動画を再生するサンプルアプリ
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- ListBoxに表示された画像をポップアップメニューから削除する+1つのサンプル
- 画像に各種フィルタを適用して保存するWindowsアプリを作る
- Webカメラで撮影した写真をセピア調に演出するアプリを作る
- CountDownControlを使ってカウントダウン後にカメラのシャッターを切る
- 場所と写真を記録するプログラムを作って思い出のシーンを保存しよう
- お気に入りの写真に登場する、仲良しクラウディアちゃん
- ピクチャライブラリ内の画像を指定して表示する+1つのサンプル
- PCで撮影した写真を並べて最適な1枚を選べるプログラムをつくる
- お花とクラウディアさんを合成して表示するプログラムを作る
- 写真と現在位置を入れた画像日記アプリを作る