为什么System.ettings类型设计器中没有列出System.Drawing.PointF?

时间:2013-07-12 15:50:44

标签: c# application-settings

我无法在Properties Settings.settings类型的browse选项中找到System.Drawing.PointF类型。为什么没有列在那里?

如何重现: 转到您的Projects Properties文件夹,然后单击Settings.settigs。在类型中,选择“浏览”,导航到“System.Drawing \ System.Drawing”。您可以看到没有列出PointF。

1 个答案:

答案 0 :(得分:2)

可能是PointF没有TypeConverterAttributePoint的事实。设置提供程序的工作方式需要一种方法将字符串转换为对象,以便DefaultSettingValueAttribute可以设置默认值。

我过去使用过的解决方法是拆分类并动态构造它。在您的设置文件中,创建两个名为MyPointFXMyPointFY的浮动设置。然后单击设置页面顶部的“查看代码”,在新文件中添加以下代码

public PointF MyPointF
{
    get
    {
        return new PointF(MyPointFX, MyPointFY);
    }
    set 
    { 
        MyPointFX = value.X;
        MyPointFY = value.Y;
    }
}

然后,您就可以访问MyPointF,并且会在其后面阅读并将设置写入两个变量MyPointFXMyPointFY