-1

ユーザーが行う特定の選択に基づいて表示したい画像があります。この画像は、PropertyGrid のプロパティとして表示されます。このような:

スクリーンショット

問題は、画像の右側にあるラベル (System.Drawing.Bitmap) やその下にある Image プロパティなど、無関係な情報をすべて取得していることです。最終製品でこの情報を隠す方法はありますか?

アップデート:

私が作業しているコードを含めることは適切だと思います。

[TypeConverter(typeof(ImagePropertiesConverter))]
public Image Unsupported
{
    get
    {
        Image image = MyProject.Properties.Resources.Unsupported;
        return image;
    }
}

そのため、このプロパティは、ユーザーが現在作業しているものに対してサポートされていない選択を行った場合にのみ表示されます。ご覧のとおり、プロパティは画像を返します。また、画像のラベルを設定できるようにしたいと考えています。現在、それは PropertyGrid に「System.Drawing.Bitmap」として表示されています。もう一歩進めるとしたら、ラベルの背景色を設定できるようにしたいです。したがって、「System.Drawing.Bitmap」は赤い背景に表示されます。サブプロパティを取り除くことができました。

4

1 に答える 1

1

カスタム TypeConverter を実装し、TypeConverter 属性で Image プロパティにフラグを立てることができます。例については、こちらを参照してください。

System.Drawing.Bitmap を取り除くには、次のようなコードを使用して TypeConverter の ConvertTo メソッドをオーバーライドします。

public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destinationType)
    {
        if (value is Image && destinationType.Equals(typeof(string)))
        {
            return "Text to replace System.Drawing.Bitmap";
        }
        else
        {
            return base.ConvertTo(context, culture, value, destinationType);
        }
    }
于 2013-03-07T16:35:56.170 に答える