从资源中加载 Microsoft 图表控件中的标记图像
Load Marker image in microsoft chart control from resources
平台:C#
集成开发环境:微软 Visual Studio 2010
我正在尝试从资源路径加载图表控件中某个点的标记图像,但它无法加载文件路径。有什么建议吗?
foreach (var pt in chart1.Series["Series1"].Points)
{
foreach (DataRow dr in ds.Tables[0].Rows)
{
if (dr["OverNo"].Equals(pt.XValue) && Convert.ToInt32(dr["Fow"]) > 0)
{
// pt.XValue +=5;
if (Convert.ToInt32(dr["Fow"]) > 0)
{
//pt.MarkerImage = s + SC.whiteBall; // this works fine
//pt.MarkerStyle = System.Windows.Forms.DataVisualization.Charting.MarkerStyle.Circle;
if (Convert.ToInt32(dr["Fow"]) == 1)
{
// Bitmap b = new Bitmap(Properties.Resources.WhiteBall1);
pt.MarkerImage = s + SC.whiteBall;
pt.MarkerStyle = System.Windows.Forms.DataVisualization.Charting.MarkerStyle.Circle;
}
}
}
}
}
Error : ImageLoader - Cannot load image from this location:
System.Drawing.Bitmap in Program.cs
- 将图像文件作为内容包含在您的应用程序中,复制到输出目录。
- 使用
MarkerImage
的完整路径,如 MainApplicationPath\Images\yourImage.bmp。检查 File.Exists
.
- 您可以对数据点和系列使用
MarkerImage
属性。如果您为数据系列使用特定图像,则所有数据点都将继承该图像。您可以针对特定数据点覆盖它。
- 使用自定义图像时使用 MarkerStyle.None。
- 如果从自定义图像切换到常规标记并返回,请在数据点上使用
DeleteCustomProperty("MarkerImage")
和 DeleteCustomProperty("MarkerStyle")
,然后重置。
您实际上可以使用嵌入式资源,而不是复制到输出目录的文件:
var myImage = new NamedImage("my_image_key", Properties.Resources.my_image);
myChartControl.Images.Add(myImage);
mySeries.MarkerImage = "my_image_key";
- 将您的图像文件(如 my_image.png)作为资源加载。
- 通过 NamedImage 对象将其添加到图表控件的图像集合中。
- 将用于对象的键名称传递到 MarkerImage series/point 属性。
PS:将您的资源文件设置为 Embedded Resource 并将 MarkerStyle 设置为 None 似乎是可选的。
平台:C# 集成开发环境:微软 Visual Studio 2010
我正在尝试从资源路径加载图表控件中某个点的标记图像,但它无法加载文件路径。有什么建议吗?
foreach (var pt in chart1.Series["Series1"].Points)
{
foreach (DataRow dr in ds.Tables[0].Rows)
{
if (dr["OverNo"].Equals(pt.XValue) && Convert.ToInt32(dr["Fow"]) > 0)
{
// pt.XValue +=5;
if (Convert.ToInt32(dr["Fow"]) > 0)
{
//pt.MarkerImage = s + SC.whiteBall; // this works fine
//pt.MarkerStyle = System.Windows.Forms.DataVisualization.Charting.MarkerStyle.Circle;
if (Convert.ToInt32(dr["Fow"]) == 1)
{
// Bitmap b = new Bitmap(Properties.Resources.WhiteBall1);
pt.MarkerImage = s + SC.whiteBall;
pt.MarkerStyle = System.Windows.Forms.DataVisualization.Charting.MarkerStyle.Circle;
}
}
}
}
}
Error : ImageLoader - Cannot load image from this location: System.Drawing.Bitmap in Program.cs
- 将图像文件作为内容包含在您的应用程序中,复制到输出目录。
- 使用
MarkerImage
的完整路径,如 MainApplicationPath\Images\yourImage.bmp。检查File.Exists
. - 您可以对数据点和系列使用
MarkerImage
属性。如果您为数据系列使用特定图像,则所有数据点都将继承该图像。您可以针对特定数据点覆盖它。 - 使用自定义图像时使用 MarkerStyle.None。
- 如果从自定义图像切换到常规标记并返回,请在数据点上使用
DeleteCustomProperty("MarkerImage")
和DeleteCustomProperty("MarkerStyle")
,然后重置。
您实际上可以使用嵌入式资源,而不是复制到输出目录的文件:
var myImage = new NamedImage("my_image_key", Properties.Resources.my_image);
myChartControl.Images.Add(myImage);
mySeries.MarkerImage = "my_image_key";
- 将您的图像文件(如 my_image.png)作为资源加载。
- 通过 NamedImage 对象将其添加到图表控件的图像集合中。
- 将用于对象的键名称传递到 MarkerImage series/point 属性。
PS:将您的资源文件设置为 Embedded Resource 并将 MarkerStyle 设置为 None 似乎是可选的。