У меня есть приложение 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.
Есть идеи? ...