没有找到合适的产品?
联系客服协助选型:023-68661681
提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
翻译|使用教程|编辑:龚雪|2020-11-16 11:23:17.900|阅读 371 次
概述:通过DevExpress WPF Controls,您能创建有着强大互动功能的XAML基础应用程序。本文将为大家介绍使用自动生成的序列创建3D图表,DevExpress WPF v20.2震撼,欢迎下载体验新版!
# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>
相关链接:
下载DevExpress v20.2完整版 DevExpress v20.1汉化资源获取
通过DevExpress WPF Controls,您能创建有着强大互动功能的XAML基础应用程序,这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。
本教程将指导您完成根据基础数据源自动创建3D系列所需的步骤。
应该执行以下步骤,本文我们将为大家介绍3个步骤及最后结果,更多完整内容欢迎持续关注!
在此步骤中,您将学习如何配置外观图设置,为此请按照以下步骤操作。
完成上述所有步骤后,您的代码将显示如下。
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="//schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="//schemas.microsoft.com/winfx/2006/xaml" xmlns:d="//schemas.microsoft.com/expression/blend/2008" xmlns:mc="//schemas.openxmlformats.org/markup-compatibility/2006" xmlns:local="clr-namespace:Chart3D_Lesson3" xmlns:dxc="//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>
运行项目以查看结果,下图显示了应用程序运行时的结果图表。
DevExpress技术交流群2:775869749 欢迎一起进群讨论
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@ke049m.cn
文章转载自:慧都网大型SaaS系统的自动化测试常常受制于界面变化快、结构复杂、加载机制多变等因素。从元素识别到脚本管理,SmartBear TestComplete帮助Salesforce建了可靠的自动化测试体系。
BarTender 标签管理系统,正是帮助企业轻松实现 GS1 标准化标签设计、编码生成与信息联动的强大工具。
Parasoft C/C++test 是一款功能强大的 C/C++ 软件测试工具,集成了静态代码分析、单元测试、集成测试和覆盖率分析等功能,单元测试作为其关键功能之一,为了适配多样化的目标部署环境,C/C++test 设计了灵活的测试结果收集机制。通过Socket通讯方式来收集单元测试结果,从而扩展其测试覆盖范围与应用场景。
Parasoft C/C++test作为一款功能全面的自动化代码质量保障工具,为C/C++开发者提供了静态分析、单元测试和运行时错误检测等核心功能。通过将其与轻量级且广受欢迎的VScode编辑器集成,开发团队可以在熟悉的编码环境中实时获得代码质量反馈,有效提升开发效率与代码可靠性。
优秀的界面控件开发包,帮助企业构建卓越应用!
DevExpress DXperience Subscription高性价比的企业级.NET用户界面套包,助力企业创建卓越应用!
DevExpress WPF Subscription高效MVVM开发模式,WPF界面解决方案首选工具,帮助企业实现酷炫动效界面。
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@ke049m.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢