1

vb.net に次のコードがあります。私は WPF を使用しており、XAML では画像にコンバーターがあります。基本的に、ステータス レベルに基づく画像は、特定の画像を表示する必要があります。

この構文に問題があります。「ImageSource」に「MustInherit のクラスでは New を使用できません」というエラーが表示されます。New を削除して ImageSource を String として宣言しようとしましたが、コードは XAML に何も返しません。私は何をする必要がありますか?!?

    Public Function Convert(ByVal value As Object, _ 
                            ByVal targetType As System.Type, 
                            ByVal parameter As Object, 
                            ByVal culture As System.Globalization.CultureInfo) _ 
        As Object Implements System.Windows.Data.IValueConverter.Convert
    Dim EstadoIndex As Integer
    If Integer.TryParse(value.ToString, EstadoIndex) Then
        Select Case EstadoIndex
            Case 1
                Return New ImageSource("/Cogent;component/Images/Green.png")
            Case 2
                Return New ImageSource("/Cogent;component/Images/Red.png")
            Case Else
                Return New ImageSource("/Cogent;component/Images/White.png")
        End Select
    Else
        Return New ImageSource("/Cogent;component/Images/White.png")
    End If
End Function
4

3 に答える 3

4

ImageSourceは抽象クラスです (これはVB.NET でのMustInherit命名方法だと思います)。abstract画像を返したい場合は、メモリに画像をロードするBitmapImageを使用できます。new BitmapImage(new Uri("/Cogent;component/Images/Green.png"))

また、設定する必要がある場合はImage.Source、文字列を返すだけImageで画像が読み込まれます。

于 2013-04-12T20:45:12.020 に答える
0

MSDN でImageSourceを確認すると、そのサブクラスの 1 つ、つまりBitmapImageを使用する必要があることがわかります

于 2013-04-12T20:46:07.140 に答える