共计 5956 个字符,预计需要花费 15 分钟才能阅读完成。
点击获取工具 >>
Step 3. 自定义图表外观
在此步骤中,您将学习如何配置外观图设置,为此请依照以下步骤操作。
- 要批改所有生成系列的外观,请应用此系列模板。要创立新模板,请在 Properties 窗口中找到 Series3DDataSourceAdapter.SeriesTemplate 属性,而后单击 New 按钮。
- 而后,更改系列视图。为此请找到 Series3DBase.View 属性,而后在下拉列表中抉择 Bubble3DSeriesView 我的项目。
- 而后批改系列点表单,为此将 Marker3DSeriesView.MarkerModel 属性指定为 Marker3DSpherePointModel 对象。
- 将 Bubble3DSeriesView.MaxSize 属性定义为 0.5,以设置最大气泡大小。将 Bubble3DSeriesView.MinSize 属性定义为 0.1,以设置最小气泡大小。
后果
实现上述所有步骤后,您的代码将显示如下。
IriesViewModel.cs
`using System;
using System.Collections.ObjectModel;
using System.Windows;
using System.Windows.Resources;
using System.Xml.Linq;
namespace Chart3D_Lesson3 {
public class IrisesViewModel {
public ObservableCollection<IrisData> Irises {get; set;}
public IrisesViewModel() {
this.Irises = DataLoader.GetIrises(“/Data/IrisDataSet.xml”);
}
}
static class DataLoader {
public static ObservableCollection<IrisData> GetIrises(string filepath) {
ObservableCollection<IrisData> irisDataSet = new ObservableCollection<IrisData>();
Uri uri = new Uri(filepath, UriKind.RelativeOrAbsolute);
StreamResourceInfo info = Application.GetResourceStream(uri);
XDocument document = XDocument.Load(info.Stream);
if (document == null) return irisDataSet;
foreach (XElement element in document.Element(“IrisDataSet”).Elements(“IrisData”)) {
double sepalLength = Convert.ToDouble(element.Element(“SepalLength”).Value);
double sepalWidth = Convert.ToDouble(element.Element(“SepalWidth”).Value);
double petalLength = Convert.ToDouble(element.Element(“PetalLength”).Value);
double petalWidth = Convert.ToDouble(element.Element(“PetalWidth”).Value);
string species = element.Element(“Species”).Value.ToString();
irisDataSet.Add(new IrisData(species, sepalWidth, sepalLength, petalWidth, petalLength));
}
return irisDataSet;
}
}
}`
Iris.cs
`namespace Chart3D_Lesson3 {
public class IrisData {
public string Species {get; private set;}
public double SepalWidth {get; private set;}
public double SepalLength {get; private set;}
public double PetalWidth {get; private set;}
public double PetalLength {get; private set;}
public IrisData(
string species,
double sepalWidth,
double sepalLength,
double petalWidth,
double petalLength
) {
Species = species;
SepalWidth = sepalWidth;
SepalLength = sepalLength;
PetalWidth = petalWidth;
PetalLength = petalLength;
}
}
}`
IrisesViewModel.vb
`Imports System
Imports System.Collections.ObjectModel
Imports System.Windows
Imports System.Windows.Resources
Imports System.Xml.Linq
Namespace Chart3D_Lesson3
Public Class IrisesViewModel
Public Property Irises() As ObservableCollection(Of IrisData)
Public Sub New()
Me.Irises = DataLoader.GetIrises(“/Data/IrisDataSet.xml”)
End Sub
End Class
Friend NotInheritable Class DataLoader
Private Sub New()
End Sub
Public Shared Function GetIrises(ByVal filepath As String) As ObservableCollection(Of IrisData)
Dim irisDataSet As New ObservableCollection(Of IrisData)()
Dim uri As New Uri(filepath, UriKind.RelativeOrAbsolute)
Dim info As StreamResourceInfo = Application.GetResourceStream(uri)
Dim document As XDocument = XDocument.Load(info.Stream)
If document Is Nothing Then
Return irisDataSet
End If
For Each element As XElement In document.Element(“IrisDataSet”).Elements(“IrisData”)
Dim sepalLength As Double = Convert.ToDouble(element.Element(“SepalLength”).Value)
Dim sepalWidth As Double = Convert.ToDouble(element.Element(“SepalWidth”).Value)
Dim petalLength As Double = Convert.ToDouble(element.Element(“PetalLength”).Value)
Dim petalWidth As Double = Convert.ToDouble(element.Element(“PetalWidth”).Value)
Dim species As String = element.Element(“Species”).Value.ToString()
irisDataSet.Add(New IrisData(species, sepalWidth, sepalLength, petalWidth, petalLength))
Next element
Return irisDataSet
End Function
End Class
End Namespace`
Iris.vb
`Namespace Chart3D_Lesson3
Public Class IrisData
Private privateSpecies As String
Public Property Species() As String
Get
Return privateSpecies
End Get
Private Set(ByVal value As String)
privateSpecies = value
End Set
End Property
Private privateSepalWidth As Double
Public Property SepalWidth() As Double
Get
Return privateSepalWidth
End Get
Private Set(ByVal value As Double)
privateSepalWidth = value
End Set
End Property
Private privateSepalLength As Double
Public Property SepalLength() As Double
Get
Return privateSepalLength
End Get
Private Set(ByVal value As Double)
privateSepalLength = value
End Set
End Property
Private privatePetalWidth As Double
Public Property PetalWidth() As Double
Get
Return privatePetalWidth
End Get
Private Set(ByVal value As Double)
privatePetalWidth = value
End Set
End Property
Private privatePetalLength As Double
Public Property PetalLength() As Double
Get
Return privatePetalLength
End Get
Private Set(ByVal value As Double)
privatePetalLength = value
End Set
End Property
Public Sub New(ByVal species As String, ByVal sepalWidth As Double, ByVal sepalLength As Double, ByVal petalWidth As Double, ByVal petalLength As Double)
Me.Species = species
Me.SepalWidth = sepalWidth
Me.SepalLength = sepalLength
Me.PetalWidth = petalWidth
Me.PetalLength = petalLength
End Sub
End Class
End Namespace
`
MainWindow.xaml
`<Window
xmlns=”http://schemas.microsoft.com/winfx/2006/xaml/presentation”
xmlns:x=”http://schemas.microsoft.com/winfx/2006/xaml”
xmlns:d=”http://schemas.microsoft.com/expression/blend/2008″
xmlns:mc=”http://schemas.openxmlformats.org/markup-compatibility/2006″
xmlns:local=”clr-namespace:Chart3D_Lesson3″
xmlns:dxc=”http://schemas.devexpress.com/winfx/2008/xaml/charts”
x:Class=”Chart3D_Lesson3.MainWindow”
mc:Ignorable=”d”
Title=”MainWindow” Height=”350″ Width=”525″>
<Window.DataContext>
<local:IrisesViewModel/>
</Window.DataContext>
<Grid>
<dxc:Chart3DControl>
<dxc:Chart3DControl.Legends>
<dxc:Legend BorderBrush=”Transparent” Background=”Transparent”/>
</dxc:Chart3DControl.Legends>
<dxc:Series3DDataSourceAdapter DataSource=”{Binding Irises}”
XArgumentDataMember=”SepalLength”
YArgumentDataMember=”PetalLength”
ValueDataMember=”SepalWidth”
SeriesDataMember=”Species”
dxc:Bubble3DSeriesView.WeightDataMember=”PetalWidth” >
<dxc:Series3DDataSourceAdapter.SeriesTemplate>
<dxc:Series3DTemplate>
<dxc:Series3DTemplate.View>
<dxc:Bubble3DSeriesView MaxSize=”0.5″
MinSize=”0.1″>
<dxc:Bubble3DSeriesView.MarkerModel>
<dxc:Marker3DSpherePointModel/>
</dxc:Bubble3DSeriesView.MarkerModel>
</dxc:Bubble3DSeriesView>
</dxc:Series3DTemplate.View>
</dxc:Series3DTemplate>
</dxc:Series3DDataSourceAdapter.SeriesTemplate>
</dxc:Series3DDataSourceAdapter>
</dxc:Chart3DControl>
</Grid>
</Window>`
运行我的项目以查看后果,下图显示了利用程序运行时的后果图表。