问题标签 [dgml]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 使用数据库中的数据在 Windows 窗体上构建有向图
我有一个带有数据的对象,每个对象都连接到其他对象。(如 object1->object2、object2->object3、object1->object3)。例如由两个类表示的对象和连接:
例如,以这种方式存储的数据:
我在我的解决方案中生成了一个DGML(有向图标记语言)文件,其中包含 Visual Studio DGML 查看器的信息,以构建
我需要通过表单向用户显示其内容的图形。我正在为我的项目使用 Windows 窗体。但是没有VS DGML Viewer这样的控件。
所以我需要另一个想法如何自动构建有向图,因为我无法对数据进行排序以获得使用 System.Graphics 制作的正确外观的图。我怎样才能实现目标?
解决方案
我使用GraphX for .NET 库来实现我的目标。该库允许基于具有自动化可视化的数据构建不同的图表。但是对于需要使用ElementHost
控件在 Windows 窗体内托管 WPF 控件的 Windows 窗体。
对于构建图,我使用了以下代码:
visual-studio - 如何在 Visual Studio 2017 DGML 编辑器中编辑节点属性?
不确定编辑器是否不工作或文档很糟糕,但我似乎无法弄清楚如何编辑节点。
我可以添加一个新节点、标记它并连接节点。但我无法向节点添加类别、编辑节点属性,甚至无法在创建节点后重新标记节点。
光标甚至集中在新类别字段上,但是当我按下键时,什么也没有发生。
visual-studio - DGML 图形坐标以何种方式定向?
语境
我正在尝试将 DGML 图转换为 SVG。我正在使用 Javascript使用 Jquery读取和解析 DGML节点和链接。我使用 Visual Studio 2017 创建了一个 DGML 图(它有一个交互式内置编辑器)。本质上,我需要在 DGML 图上的节点位置和生成的 SVG 之间创建映射。我已经设法对节点和链接的每个属性进行转换,除了一个名为Bounds的属性
我在“Bounds”的属性标记中看到数据类型System.Windows.Rect
具有构造函数Rect(Double, Double, Double, Double)
- 初始化具有指定 x 坐标、y 坐标、宽度和高度的 Rect 结构的新实例。
https://msdn.microsoft.com/en-us/library/system.windows.rect(v=vs.110).aspx
由于所有节点的大小都相同,因此假设最后两个参数是宽度和高度并没有错。
问题
DGML的图形坐标系是如何定位的?例如,一个 SVG 图形像大多数 CG 坐标一样开始,左上角原点;正 X 向右,正 Y 向下。我在 DGML 参考资料上找不到任何相关信息
https://docs.microsoft.com/en-us/visualstudio/modeling/directed-graph-markup-language-dgml-reference
visual-studio-2017 - 如何打印 dgml 文件?
我在 Visual Studio 2017 中创建了一个 dgml 文件,其中包含数据库的架构。
我们在团队中经常提到这一点,所以我想把它打印出来。
我怎样才能做到这一点?
我试过文件->打印菜单,但它是灰色的。
我也尝试过使用编辑->复制图像,但是当我将它粘贴到第三方图像编辑器(可以打印)时,复制图像的分辨率太低以至于我无法阅读文本。
visual-studio - 更改展开的 dgml 节点的颜色
在 dgml 文件中,展开的节点可以设置背景颜色,以更改边框和标题栏的背景。前景色设置标题文本的颜色。
主体当前似乎填充了一种颜色,该颜色取决于在 Visual Studio 选项对话框中选择的当前颜色主题。这意味着有些人最终有白色背景和一些黑色。这会导致问题,尤其是在尝试导出为 xps 以打印图表时。一大块黑色墨水就是浪费墨水!
展开的Node的body颜色怎么指定?
c# - 是否可以像加载 XML 文件一样使用 XDocument 的功能加载 DGML 文件?
我想将 DGML 文件加载到 C# 代码中,例如加载 XML 文件。我应该如何写来加载它们?
我找不到关于 DGML 文件加载器的好示例,但是,我找到了 XML 文件加载器示例。所以我尝试加载 DGML 文件,例如使用 XDocument 函数加载 XML 文件。
这是我制作的一个函数,它适用于 XML 文件。但 DGML 文件无法正确加载。
在此代码中,元素为空。我试图加载的是这种简单的 DGML 文件。“ https://docs.microsoft.com/en-us/visualstudio/modeling/directed-graph-markup-language-dgml-reference?view=vs-2019 ”
我的代码中有什么不正确的部分?
谢谢,
c# - 为什么xmlns出现在DGML文件写入的父节点?
当我保存DGML
文件时,出现不必要的XNamespace
。
这是保存DGML
文件的代码。
这是一个输出DGML
文件。
如您所见,xmlns=""
ofXNameSpace
出现在父节点、Nodes
、Links
和之后Categories
。我怎样才能删除它?
xml - Visual Studio 代码映射不起作用 - 如何使用 xml 和 xslt 将 vb 代码片段转换为 dmgl 有向图/代码映射
我无法让 Visual Studio 建模/映射孤立/离散 VB 函数代码。
我正在使用用 VB.Net 编写的遗留应用程序。大多数应用程序代码/可执行文件对最终用户是不透明的,但它在表单后面具有用户空间自定义,可以与表单字段和数据模型交互。我需要做的是映射这个用户定义的代码以查找不良交互,例如循环逻辑。
TL,DR(问题):目标是获得某种实体关系或依赖图。我可以在 Viso 或其他东西中绘制这些,但是为所有代码都这样做是相当令人生畏的。
在我看来,应该有一种方法可以轻松地为函数及其内部结构以及读写模式建立模式。到目前为止我还没有发现任何东西。没有人应该尝试用 Excel 来做这件事——太多了。我熟悉正则表达式,但根据我的经验,它并不是真的适合这样的问题。
有什么办法吗?
如果对细节不感兴趣,请忽略以下
我尝试过使用 VS 代码映射,但它需要引用应用程序的已编译部分,而我没有。所以在 VS 中,这个用户代码基本上是死的、无法识别的孤立代码。它没有类上下文,只在运行时执行。这样做似乎相当困难。所以 VS Code 可以语法高亮它,但 Visual Studio 不能用它做任何事情,并且像代码映射和 dmg(有向图)这样的附加工具看不到它。
由于所有用户代码都是简单的函数,我希望以某种方式将其简单地转换为 DMGL,以查看它们在这种有限的上下文中如何相互引用。我可以使用 Excel 或 Regex 来做到这一点,但这必须是重新发明轮子的重大努力。我什至尝试过Object-Role Modeling,但是必须手动输入,太麻烦了。
我也看过 Roslyn,但它与 Visual Studio 的问题相同
在这里复制我所有的可疑函数可能不太好,但可以在以下位置看到整个上下文:最可能的罪魁祸首
理解显示的代码的关键是有一个表示时间卡的父/标题表单。Timecards 表中的字段以 lmp* 为前缀——并且有一个表示详细信息行的子子表单,称为数据库表 TimecardLines,其字段以 lml* 为前缀。
例子
当用户编辑时间卡行的某些字段时,可以调用这两个函数。我没有显示代码,只显示接口。每个都可以引用和更新由其他功能管理的字段。因此,以文本形式可视化可能的级联效果可能是一场噩梦。
标记为依赖项的项目是对应用程序已编译部分的调用,我只有接口足迹,除了作为入口/出口点之外无法分析。由于它们对我来说是不可变的,我无法修复它们,只能在不必要的地方避免它们。:
M1.Ax.Erp.Forms.Production.Timecard.TimecardLineView
+Timecard 条目问题的子级:M1.Ax.Erp.Forms.Production.TimecardView
注:暂不考虑
_Delete()
事件。
更新:
lmlLaborHours
- 隐式调用: -lmlLaborHours_ValueChanged()
lmlActualEndTime
- 隐式调用:
TimecardLines_UpdateCompleted
- 隐式调用:
输入:
lmlRoundedStartTime
lmlRoundedEndTime
lmlShiftID
依赖:
App.Ax("Shift").``CalculateHours``()
行为设置:
xapLMUpdateActualWithRounded
隐式调用:
lmpRoundedEndTime_ValueChanged()
更新:
lmlRoundedEndTime
- 隐式调用:
lmlRoundedEndTime_ValueChanged
TimecardLines_UpdateCompleted
lmlLaborHours
lmlActualStartTime
- 隐式调用:
输入:
lmlActualStartTime
lmlRoundedStartTime
lmlRoundedEndTime
lmlLaborHours
lmlShiftID
依赖项:
App.Ax("Shift").``CalculateEndTime``()
App.Ax("Shift").CalculateHours()
行为设置:
xapLMCalculateEndTime
xapLMUpdateActualWithRounded
当这些被编辑时,父标题会被更新,因此许多相关的父函数可能会发生不良交互:
M1.Ax.Erp.Forms.Production.Timecard.TimecardView
父级:+Timecard 条目问题:M1.Ax.Erp.Forms.Production.TimecardLineView
可以调用以下函数:TimecardLines_UpdateCompleted
更新:
lmpPayrollHours
输入:
lmpRoundedStartTime
lmpRoundedEndTime
lmpShiftID
依赖项:
App.Ax("TimecardFunctions").CalculateHours()
行为设置:
xapDCPayCalculationMethod
更新:
lmpPayrollHours
输入:
lmpRoundedStartTime
lmpRoundedEndTime
lmpShiftID
依赖项:
App.Ax("TimecardFunctions").CalculateHours()
行为设置:
xapDCPayCalculationMethod
等等。
PS:我没有创建标签 dmgl 的声誉分数 - 它应该是。如果有人可以标记它,那就太棒了。