0

私は WPF アプリケーションを持っていて、プロジェクト リソースに多くのアイコンとビットマップを追加しました。

これで、次のようにアクセスできます。

Dim ico As System.Drawing.Icon = My.Resources.Icon 'Icon.ico
Dim img As System.Drawing.Bitmap = My.Resources.Image 'Image.png

wpf で使用するために、ImageSource タイプに変換する単純すぎる拡張メソッドを作成しました。

'...Imports System.Drawing
'...Imports System.Windows.Interop.Imaging
<Extension()> _
Public Function ToImageSource(ByVal icon As Icon) As BitmapSource
    Return CreateBitmapSourceFromHIcon(icon.Handle, Int32Rect.Empty, _
        BitmapSizeOptions.FromEmptyOptions)
End Function

<Extension()> _
Public Function ToImageSource(ByVal image As Bitmap) As BitmapSource
    Return CreateBitmapSourceFromHBitmap(image.GetHbitmap(), IntPtr.Zero, _
        Int32Rect.Empty, BitmapSizeOptions.FromEmptyOptions)
End Function

したがって、次のように使用できます。

Dim i As New Image With {.Source = My.Resources.Image.ToImageSource}

MyWpfExtensions.vb を見ると、非公式のコーディングを許可する Microsoft インフラストラクチャはほとんどないことがわかります。専門家の皆さんに質問します。

タイプ System.Drawing.Bitmap/Icon のリソースごとに、ex を介して画像を返す追加の (またはオーバーライドする) プロパティが必要です。メソッドなので、Xaml でコンバーターを使用する必要はありませんが、直接使用します。

私は実際に Microsoft.VisualBasic.MyGroupCollectionAttribute のようなものを探しています。

何か案は?...

4

1 に答える 1