2015年10月23日金曜日

VB WPF お勉強 08 Image にファイルから画像を

そう、Form の頃は、 Me.PictureBox1.Image = Image.FromFile("何某.jpg") の1行で事足りました。
でも、WPF では、こんなに簡単には済みません。
少なくとも、何行かは書かないと、いけません。  ファイルから画像を表示するのに。
最初は、やはり、間誤付いて しまいますね。


尤も、 Form の頃も、これからお話する方法と似た書き方がありましたね。
そう言えば、こんな投稿をした記憶があります。

   VB 表示した画像ファイルの上書き保存


さて、本題。
WPF で、画像を表示する時に、 覚えて置く事!。

配置した Image1 Control に画像を結び付けるとします。
そのコードは。

        Dim fd As String = "C:¥某所"               'Image Folder (AbsolutePath)
        Dim fn As String = "何某.jpg"               'FileName Only
        Dim fp As String = fd & "\" & fn        'FileName with FullPath
        Dim bi As New BitmapImage()
        bi.BeginInit()
        bi.CacheOption = BitmapCacheOption.OnLoad
        bi.UriSource = New System.Uri(fp)
        bi.EndInit()
        Me.Image1.Source = bi

おっと !、 書き忘れています。
画像を実行ファイルのリソースとして登録する場合は 書き方が少し違って来ますね。
本題とは掛け離れますので、これは、また、別の機会に。



そう言えば、見慣れた 3D の枠 も WPF の Image にはありません。
どうしても、枠が欲しければ、 Border Control の 中で Image Control を定義する事になるのでしょうか。
でも、3D の枠は、... 面倒くさそう ... ですね。  ... う~ん、User Control にするのかなぁ ... 。.
一応、.xaml を。
        <Border x:Name="Border1RB" Width="200" Height="150" BorderBrush="black" BorderThickness="0,0,1,1">
            <Border x:Name="Border1LT" Width="200" Height="150" BorderBrush="White" BorderThickness="1,1,0,0">
                <Image Name="Image1" Width="200" Height="150" Stretch="Fill" />
            </Border>
        </Border>
きっと、この場合、枠線が画像を喰っていると思うのですが ... 。  ちゃんと調べれば いい のにね。  う~ん、いい加減!。.



次の投稿の最後にシリーズのリンクを纏めてあります。   VB WPF お勉強 01 印象



0 件のコメント:

コメントを投稿