Gráfico de serialização
A serialização é o processo de converter seus gráficos em um formato que você pode salvar ou transmitir. Você normalmente o utiliza para salvar as propriedades do gráfico, mas você também pode usá-lo para recuperar dados e carregá-lo em um controle gráfico existente.
Ao serializar os dados do gráfico, o gráfico serializa somente as propriedades com valores não padrão.
Formato de dados serializados
Você pode serializar os dados para um arquivo binário ou XML. Quando salvar ou carregar dados usando um objeto derivado de StringReader, StringWriter, XMLReader, ou XMLWriter, você deve usar o XML como formato de dados.
O formato padrão dos dados é XML. Para salvar e carregar dados em formato binário, defina o Format propriedade SerializationFormat.Binary.
Salvando e carregando dados
Para salvar as propriedades do gráfico, use o Save método o Chart.Serializer objeto. Para carregar dados serializados no controle de gráfico, use o Load método.
Por padrão, o Chart.Serializer objeto salva e carrega todos do gráfico de propriedades são salvas e carregadas. Tanto o Save e Load métodos são sobrecarregados para que você possa usá-las com um número de objetos diferentes.
O código a seguir demonstra como salvar ou carregar dados do gráfico.
' Save to and load from an XML file
Chart1.Serializer.Save("SavedData.xml")
Chart1.Serializer.Load("SavedData.xml")
' Save to and load from a .NET Stream object.
Dim myStream As New System.IO.MemoryStream()
Chart1.Serializer.Save(myStream)
Chart1.Serializer.Load(myStream)
//Save to and load from an XML file
Chart1.Serializer.Save("SavedData.xml");
Chart1.Serializer.Load("SavedData.xml");
// Save to and load from a .NET Stream object.
System.IO.MemoryStream myStream = new System.IO.MemoryStream();
Chart1.Serializer.Save(myStream);
Chart1.Serializer.Load(myStream);
O código a seguir demonstra como usar objetos derivados de XMLReader e XMLWriter para carregar e salvar dados do gráfico.
Dim myWriter As New System.XML.XmlTextWriter("c:\MyPersistedData.xml", System.Text.Encoding.ASCII)
Chart1.Serializer.Save(myWriter)
' We initialize the XML reader with data from a file.
Dim myXMLReader As New System.XML.XmlTextReader("c:\MyPersistedData.xml")
Chart1.Serializer.Load(myXMLReader)
System.XML.XmlTextWriter myWriter = new System.XML.XmlTextWriter("c:\\MyPersistedData.xml", System.Text.Encoding.ASCII);
Chart1.Serializer.Save(myWriter);
// We initialize the XML reader with data from a file.
System.XML.XmlTextReader myXMLReader = new System.XML.XmlTextReader("c:\\MyPersistedData.xml");
Chart1.Serializer.Load(myXMLReader);
Serializando dados de estado (ASP.NET)
Se você estiver usando o ViewStateData propriedade para gerenciamento de estado, você também pode usar o Load e Save métodos o Serializer objeto para salvar e carregar um estado de exibição definida pelo usuário. Você deve usar StringReader para ler os dados no controle e StringWriter para gravar os dados serializáveis para o ViewStateData propriedade.
O código a seguir demonstra como usar StringReader e StringWriter para salvar e carregar dados serializados.
Dim sw As New System.IO.StringWriter
Chart1.Serializer.Save(sw)
' Initialize the string reader with the data being posted by the client back to the server.
Dim sr As New StringReader(Chart1.ViewStateData)
Chart1.Serializer.Load(sr)
System.IO.StringWriter sw = new System.IO.StringWriter();
Chart1.Serializer.Save(sw);
// Initialize the string reader with the data being posted by the client back to the server.
StringReader sr = new StringReader(Chart1.ViewStateData);
Chart1.Serializer.Load(sr);
Especificando propriedades do gráfico para serializar
Para especificar quais propriedades para serializar, use o Content ou SerializableContent propriedades ou ambos, em Chart.Serializer.
O Content propriedade especifica a categoria de propriedades do gráfico para serializar, enquanto o SerializableContent propriedade é uma lista separada por vírgulas de todas as propriedades do gráfico para serializar. Essas propriedades se aplicam a todos os carga, salvar e operações de redefinição.
Importante
O Content propriedade usa SerializableContent internamente inserindo curingas de propriedade.Se você quiser usar as duas propriedades juntos, certifique-se de que você concatenar a SerializableContent cadeia de caracteres é concatenada com o próprio para preservar suas configurações no Content propriedade.
Para especificar quais propriedades para não serializar, use o NonSerializableContent propriedade da mesma maneira como o SerializableContent propriedade.
Às vezes, uma propriedade pode ser definida para ser serializados e não serializados. Nesse caso, o processo de serialização resolve as inconsistências da seguinte maneira:
Chamado propriedades têm precedência sobre a propriedade curingas. Por exemplo, se SerializableContent é definido como "*.BackColor"e NonSerializableContent é definido como"ChartArea.BackColor", em seguida, todos os BackColor propriedades, exceto ChartArea objetos poderão ser serializados.
Caso contrário, SerializableContent tem precedência sobre NonSerializableContent.
O código a seguir demonstra como serializar os dados do gráfico aparência e rótulos de eixo em disco e, em seguida, carregar que dados serializados.
' Save chart appearance properties that have non-default values, as well as axis labels.
Chart1.Serializer.Content = SerializationContent.Appearance
' Concatenate the Content property string and the SerializableContent string
Chart1.Serializer.SerializableContent += ",DataPoint.AxisLabel,Series.AxisLabels,Series.Name,ChartArea.Name"
' Exclude all chart BackColor properties
Chart1.Serializer.NonSerializableContent = *.BackColor"
' Save the chart data
Chart1.Serializer.Save("AppearanceProps.xml")
' Load the serialized data.
Chart1.Serializer.Content = SerializationContent.Appearance
Chart1.Serializer.SerializableContent += ",DataPoint.AxisLabel,Series.AxisLabels,Series.Name,ChartArea.Name"
Chart1.Serializer.Load("AppearanceProps.xml")
// Save chart appearance properties that have non-default values, as well as axis labels.
Chart1.Serializer.Content = SerializationContent.Appearance;
// Concatenate the Content property string and the SerializableContent string
Chart1.Serializer.SerializableContent += ",DataPoint.AxisLabel,Series.AxisLabels,Series.Name,ChartArea.Name";
// Exclude all chart BackColor properties
Chart1.Serializer.NonSerializableContent = *.BackColor";
// Save the chart data
Chart1.Serializer.Save("AppearanceProps.xml");
// Load the serialized data.
Chart1.Serializer.Content = SerializationContent.Appearance;
Chart1.Serializer.SerializableContent += ",DataPoint.AxisLabel,Series.AxisLabels,Series.Name,ChartArea.Name";
Chart1.Serializer.Load("AppearanceProps.xml");
Redefinir as propriedades do gráfico para valores padrão
Para redefinir todas as propriedades de um gráfico a qualquer momento, use o Reset método.
Por padrão, a serialização Load método redefine todas as propriedades que não são serializadas salvas com seus valores padrão, incluindo propriedades serializáveis que não são serializadas. Isso pode causar a perda de dados se você usar o Save método, usar imediatamente o Load método. Para alterar esse comportamento, defina o ResetWhenLoading propriedade False para que o Load método faz não os valores não padrão de propriedades.
Importante
Deve-se ter cuidado ao recarregar as propriedades da coleção.Se os itens específicos na Chart.Series ou Chart.ChartAreas são persistentes, em seguida, salvar e recarregar imediatamente o gráfico com ResetWhenLoading definida como True faz com que o série ou gráfico todos os itens da área a ser excluído do gráfico.
Consulte também
Referência
System.Windows.Forms.DataVisualization.Charting
System.Web.UI.DataVisualization.Charting