用System.Windows.Point+StreamGeometry画线,如何设置Point的格式(颜色、形状、大小)?

dust_dust 2014-09-03 11:39:11


要达到上图中的效果,该怎么做?

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

namespace line
{
/// <summary>
/// Window1.xaml 的交互逻辑
/// </summary>
public partial class Window1 : Window
{
public Window1()
{
InitializeComponent();
}
private StreamGeometry BuildRegularPolygon(Point[] values, bool isClosed, bool isfilled)
{
StreamGeometry geometry = new StreamGeometry();

using (StreamGeometryContext ctx = geometry.Open())
{
ctx.BeginFigure(values[0], isfilled /* is filled */, isClosed /* is closed */);

for (int i = 1; i < values.Length; i++)
{
ctx.LineTo(values[i], true /* is stroked */, false /* is smooth join */);
}
}

return geometry;

}
private void myButtonClicked(object sender, EventArgs e) {


Point p6 = Point.Parse("234,789");
Point p1 = new Point(0, 0);
Point p2 = new Point(100,100);
Point p3 = new Point(235,344);
Point p4 = new Point(454,67);
Point p5 = new Point(36,455);
Point[] values = new Point[] { p1, p3, p5, p2, p4,p6 };
StreamGeometry theGeometry = BuildRegularPolygon(values, true, false);
// Create a StreamGeometry to use to specify myPath.
theGeometry.FillRule = FillRule.EvenOdd;
Path myPath = new Path();
myPath.Stroke = Brushes.Black;
myPath.StrokeThickness = 1;
myPath.Data = theGeometry;
grid1.Children.Add(myPath);

}
}
}
...全文
1215 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
I_LOVE_RMB 2017-05-03
  • 打赏
  • 举报
回复
请问您那个节点是怎么画上去的,我要做成有节点的效果谢谢
vbfool 2014-09-05
  • 打赏
  • 举报
回复
http://pan.baidu.com/s/1bnrPlL1 这是我写的一个例子,你看看这个思路能不能用。
dust_dust 2014-09-05
  • 打赏
  • 举报
回复
引用 5 楼 vbfool 的回复:
如果你还需要响应拖动,那么那些节点需要是Shape才行。
能具体给一些参考资料吗?比如怎么画一个小矩形作为点,然后拖动他,和另外一个小矩形用直线连接
vbfool 2014-09-05
  • 打赏
  • 举报
回复
引用 8 楼 shaode0101 的回复:
我用vs2010打开都是说“”选择的文件是解决方案,但是用此应用程序的较新版本创建的,无法打开“,怎么办 [quote=引用 7 楼 vbfool 的回复:] http://pan.baidu.com/s/1bnrPlL1 这是我写的一个例子,你看看这个思路能不能用。
[/quote] 改用vs2012打开,或者装个SharpDeveloper也可以打开。
dust_dust 2014-09-05
  • 打赏
  • 举报
回复
我用vs2010打开都是说“”选择的文件是解决方案,但是用此应用程序的较新版本创建的,无法打开“,怎么办
引用 7 楼 vbfool 的回复:
http://pan.baidu.com/s/1bnrPlL1 这是我写的一个例子,你看看这个思路能不能用。
vbfool 2014-09-04
  • 打赏
  • 举报
回复
如果你还需要响应拖动,那么那些节点需要是Shape才行。
  • 打赏
  • 举报
回复
只能说 估计目前达不到吧,除非使用第三方控件。
Veary 2014-09-04
  • 打赏
  • 举报
回复
围观绑定兼学习
dust_dust 2014-09-03
  • 打赏
  • 举报
回复
类似的问题还在这里发了http://bbs.csdn.net/topics/390876316 所以一共八十分,拜托各位了
dust_dust 2014-09-03
  • 打赏
  • 举报
回复
后续还要实现用鼠标点击上面的点实现拖动效果,所以请各位尽量综合考虑一下,拜托啦
内容概要:SSD2828QN4是一款MIPI主桥接芯片,用于连接应用处理器与传统并行LCD接口及支持MIPI从属接口的LCD驱动器。该芯片支持最高每通道1Gbps的串行链路速度,最多可配置4个数据通道,显著减少了信号数量。它支持多种接口模式,包括RGB+SPI组合接口,适用于驱动智能或非智能显示面板,并能通过命令模式和视频模式传输数据。芯片内置时钟和复位模块、外部接口、协议控制单元(PCU)、包处理单元(PPU)、错误校正码/循环冗余校验(ECC/CRC)模块、长包和命令缓冲区、D-PHY控制器、模拟收发器以及内部锁相环(PLL),确保了高效的数据传输和系统稳定性。此外,文档详细描述了芯片的引脚分配、寄存器设置、操作模式、电源序列、时序特性等关键参数,为开发者提供了全面的技术指导。 适合人群:具备一定硬件设计基础,从事嵌入式系统开发、显示技术研究的研发人员。 使用场景及目标:①实现应用处理器与MIPI兼容显示屏之间的高速数据传输;②优化显示系统的功耗表现,减少电磁干扰(EMI);③通过灵活配置不同接口模式来适应各种显示设备的需求。 阅读建议:此文档面向具有一定电子工程背景的专业人士,建议读者结合实际项目需求深入理解各章节内容,特别是关于寄存器配置、时序要求等方面的具体说明。对于初次接触此类技术的开发者而言,建议先熟悉基本概念再逐步掌握高级功能的应用方法。

8,757

社区成员

发帖
与我相关
我的任务
社区描述
WPF/Silverlight相关讨论
社区管理员
  • WPF/Silverlight社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧