WPF 沿路径绘制箭头

2023-12-31

只是想知道我如何沿着路径绘制箭头。路径将改变方向并经过几个不同的点。箭头旨在向用户显示他们需要沿着路径行进的方向。

我尝试过使用画笔,但它不起作用,因为我需要箭头来沿着路径调整它们的方向......


See 路径动画概述 http://msdn.microsoft.com/en-us/library/aa970561.aspx and 矩阵动画使用路径 http://msdn.microsoft.com/en-us/library/system.windows.media.animation.matrixanimationusingpath.aspx

它可用于沿 PathGeometry 移动控件,如果设置DoesRotateWithTangent,控件也将沿路径方向旋转。

EDIT1:

<Page.Resources>
    <PathGeometry x:Key="Path" x:Shared="False" Figures="M 10,100 C 35,0 135,0 160,100 180,190 285,200 310,100"/>
</Page.Resources>
<Canvas Width="400" Height="400">
    <Path Data="{StaticResource Path}" Stroke="Blue" StrokeThickness="1"/>
    <Path
        x:Name="Arrow1"
        Stretch="Fill"
        Width="16" Height="16" StrokeLineJoin="Miter"
        Data="M 0 -5 L 10 -5 M 5 0 L 10 -5 L 5 -10" 
        Stroke="Black" StrokeThickness="3">
        <Path.RenderTransform>
            <TransformGroup>
                <TranslateTransform X="-8" Y="-8"/>
                <MatrixTransform>
                    <MatrixTransform.Matrix>
                        <Matrix/>
                    </MatrixTransform.Matrix>
                </MatrixTransform>
            </TransformGroup>
        </Path.RenderTransform>
        <Path.Triggers>
            <EventTrigger RoutedEvent="Path.Loaded">
                <BeginStoryboard>
                    <Storyboard>
                        <MatrixAnimationUsingPath
                            Storyboard.TargetName="Arrow1"
                            Storyboard.TargetProperty="RenderTransform.Children[1].Matrix"                                
                            DoesRotateWithTangent="True"
                            Duration="0:0:5" 
                            BeginTime="0:0:0"
                            RepeatBehavior="Forever" PathGeometry="{StaticResource Path}" >                               
                        </MatrixAnimationUsingPath>
                    </Storyboard>
                </BeginStoryboard>
            </EventTrigger>
        </Path.Triggers>
    </Path>
</Canvas>

EDIT2:计算您需要多少支箭头

我假设您正在创建自定义控件并以编程方式添加箭头? 如果是这样,我认为最简单的方法是指定单个循环的 Duration 和 BeginTimeGap,即后续箭头的 BeginTimes 之间的时间。您必须添加的箭头数量为 Duration/BeginTimeGap,或者用简化代码表示:

while (BeginTime < Duration) 
{ 
    //add arrow with BeginTime and Duration; 
    BeginTime += BeginTimeGap; 
}

获得正确的速度和箭头之间的间距可以归结为调整这两个值。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

WPF 沿路径绘制箭头 的相关文章

  • 检测wlan是否关闭

    任何人都可以给我一个提示 如何在 Windows Phone 上以编程方式检测 C 8 1 应用程序 不是 8 0 是否启用 禁用 WLAN 我不想更改这些设置 只是需要知道 该解决方案是一个 Windows 8 1 通用应用程序 Wind
  • 将完整模板参数值映射到原始类型

    我想将数字映射到类型 在这个例子中 我将创建一个函数 将 sizeof 结果映射到有符号的原始类型 我想知道是否有更好的方法来完成我在现代 C 中所做的事情 即采用模板化值并将其转换为类型 现在 这可以将大小转换为已知类型 但我似乎无法在标
  • 解析 JWT 令牌以仅获取有效负载内容,无需 C# 或 Blazor 中的外部库

    我正在使用 Blazor 编写可以访问 JWT 的客户端应用程序 我想知道一种简单的方法来读取令牌有效负载内容而不添加额外的依赖项 因为我不需要其他信息 也不需要验证令牌 我认为解析有效负载内容应该足够简单 只需将其写入方法即可 JwtTo
  • 在 C# 中调用 C++ 库 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我有很多用 C 编写的库 我想从 C 调用这些库 但是 我遇到了很多问题 我想知道是否有书籍或指南告诉我如何做到这一点 Dll导入 htt
  • 如何使用 SOAP 且不使用 WSE 在 .NET 中签署 Amazon Web 服务请求

    亚马逊产品广告 API 以前称为 Amazon Associates Web Service 或 Amazon AWS 实施了一项新规则 即自 2009 年 8 月 15 日起 向其发送的所有 Web 服务请求都必须经过签名 他们在其网站上
  • 从模板切换传递的类型

    在 C 中是否可以检查传递给模板函数的类型 例如 template
  • 在开关中使用“goto”?

    我看到了一个建议的编码标准 内容如下Never use goto unless in a switch statement fall through 我不跟 这个 例外 案例到底是什么样的 这证明了goto 此构造在 C 中是非法的 swi
  • 如何制作可启动程序?

    所以 这个问题可能看起来很奇怪 但假设我编译了 int main void int x 3 int y 4 int z x y 是否可以让CPU这样运行 如何 例如 这允许我写入监视器吗 如果我没记错的话 内存中有些地方可以写入要显示的内容
  • 获取 boost Spirit 语法中的当前行

    我正在尝试使用 boostspirit 获取正在解析的文件的当前行 我创建了一个语法类和结构来解析我的命令 我还想跟踪在哪一行找到命令并将其解析到我的结构中 我将 istream 文件迭代器包装在 multi pass 迭代器中 然后将其包
  • C#6 中的长字符串插值行

    我发现 虽然字符串插值在应用于现有代码库的字符串 Format 调用时非常好 但考虑到通常首选的列限制 字符串对于单行来说很快就会变得太长 特别是当被插值的表达式很复杂时 使用格式字符串 您将获得一个可以拆分为多行的变量列表 var str
  • 引用/指针失效到底是什么?

    我找不到任何定义指针 引用无效在标准中 我问这个问题是因为我刚刚发现 C 11 禁止字符串的写时复制 COW 据我了解 如果应用了 COW 那么p仍然是一个有效的指针并且r以下命令后的有效参考 std string s abc std st
  • Project Euler #8,我不明白我哪里出了问题[关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我正在做项目欧拉第八题 https projecteuler net problem 8 其中我得到了这个大得离谱的数字 7316
  • .NET 4 的条件编译[重复]

    这个问题在这里已经有答案了 可能的重复 条件编译和框架目标 https stackoverflow com questions 2923210 c sharp conditional compilation and framework ta
  • 选择查询不适用于使用Parameters.AddWithValue 的参数

    C 中的以下查询不起作用 但我看不出问题所在 string Getquery select from user tbl where emp id emp id and birthdate birthdate cmdR Parameters
  • 如何调试 .NET 运行时中的内部错误?

    我正在尝试调试一些处理大文件的工作 代码本身works 但 NET 运行时本身会报告零星错误 对于上下文 这里的处理是一个 1 5GB 文件 仅加载到内存中一次 在循环中处理和释放 故意尝试重现此否则不可预测的错误 我的测试片段基本上是 t
  • 如何在 winforms 应用程序的主屏幕显示之前显示欢迎屏幕?

    我想在应用程序启动时加载欢迎屏幕 然后用户单击欢迎屏幕上的按钮 然后关闭欢迎屏幕 最后显示主屏幕 static void Main startup method being called Application EnableVisualSt
  • 节点未找到全局模块

    所以我意识到这是一个相当通用的标题和问题 但我已经搜索了很多答案 但遗憾的是它们似乎都不适合我 我希望通过我自己提供更多信息 也许有人有一个具体的答案 或者确切地知道将我重定向到哪个答案 我的问题 当我全局安装节点模块时 例如npm ins
  • LINQ 中的“from..where”或“FirstOrDefault”

    传统上 当我尝试从数据库中获取用户的数据时 我使用了以下方法 在某种程度上 DbUsers curUser context DbUsers FirstOrDefault x gt x u LoginName id string name c
  • 使用 using 声明时,非限定名称查找如何工作?

    根据 C 标准 这是格式错误还是格式良好 namespace M struct i namespace N static int i 1 using M i using N i int main sizeof i Clang 拒绝它 GCC
  • INotifyPropertyChanged 和 propertyName

    我一直不确定它的含义propertyName实施时INotifyPropertyChanged 所以一般来说你实现INotifyPropertyChanged as public class Data INotifyPropertyChan

随机推荐

  • 如何在某个索引处用不同颜色标记水平进度条,就像Android中的Youtube视频黄色广告标记一样

    在我当前的应用程序中 需要创建自定义视频播放器 特殊要求是在某个给定的时间索引显示或标记不同颜色的视频进度条 就像 Youtube 用黄色标记其视频以指示其视频上的广告一样进度条 为了更清楚 请检查下面的屏幕截图 此时 我已经使用 Vide
  • R 中数据帧的条件和

    我想组合数据帧并根据其中一个数据帧的值有条件地计算它们的总和 对于下面的示例 如果单元格位于df4不是 0 也不是 NA 总和应该是df3 df4否则总和应该是df1 df2 df3 gt df1 1 2 3 A 0 3 2 B 1 1 0
  • 解析推送 - 如何在 Android 上接收推送时自动打开活动,无需用户操作

    我有一个要求 android 当收到推送通知时 我的应用程序应该自动运行其主要活动 而无需用户单击系统托盘中的通知 我有一张显示当前位置的地图 但在推送中 我将收到一个位置 并且我需要在主要活动中使用我的地图在接收推送时将相机移动到当前接收
  • 从 python 中的 stdin 读取时管道文件描述符错误

    重复的this https stackoverflow com questions 466801 python piping on windows why does this not work问题 投票结束 在 Windows 命令行中考虑
  • Django Rest Framework - 未提供身份验证凭据

    我正在使用 Django Rest Framework 开发一个 API 我正在尝试列出或创建一个 订单 对象 但是当我尝试访问控制台时出现以下错误 detail Authentication credentials were not pr
  • 获取最高分配的文件描述符

    是否有一种可移植的方法 POSIX 来获取当前进程的最高分配文件描述符编号 例如 我知道有一种很好的方法可以获取 AIX 上的号码 但我正在寻找一种可移植的方法 我问的原因是我想关闭所有打开的文件描述符 我的程序是一个以 root 身份运行
  • 在 xib 的自定义单元上设置 IBAction?

    我在 xib 中创建了一个自定义单元格 在 iOS 6 中使用 Storyboard 但为单元格创建了单独的 xib 现在我尝试将扬声器按钮连接到 UITableViewController 子类中的 IBAction 我在 viewDid
  • .NET C#:如何在 AJAX 调用期间处理表单身份验证过期

    对于上下文 我在 web config 中设置了表单身份验证超时值 并且正在使用 ASP NET MVC 1 我认为将我的问题表述为 2 个用例可能是最简单的 第一个用例是在没有身份验证的情况下发生的情况超时 第二个是身份验证超时会发生什么
  • 如何在 JSF 中显示我的应用程序的错误?

    在我的 JSF Facelets 应用程序中 这是我的表单的一部分的简化版本
  • 如何使用类似于beanstalkd的cli来监控Redis作为队列引擎?

    背景 We used Laravel 队列 https laravel com docs 5 1 queues在之上豆茎 https github com kr beanstalkd在两个 ec2 实例上 在负载均衡器后面 随着系统的扩展
  • C# 超时后自动释放锁

    有谁知道实现锁定的最佳方法是什么 以便在X秒后它会自动释放 假设您正在寻找在 X 秒内触发的事件 那么我认为当前没有任何核心 Mutex 对象提供您正在寻找的功能类型 您可以通过使用 System Timer 在 X 秒内触发并释放锁定的互
  • Flutter:将文件(图像)裁剪为圆形

    我正在尝试在颤动中裁剪文件 图像文件 这就是我所拥有的 这就是我想要在裁剪后得到的 带有圆形裁剪的 png 重要的是该文件是 png 因此它没有白色边框 有支持这个的包吗 您可以使用盒子装饰 https api flutter dev fl
  • 将非常大的数字从二进制转换为十进制并打印

    我知道如何将二进制转换为十进制 我至少知道两种方法 表和幂 我想将二进制转换为十进制并打印该十进制 而且 我对这个 小数 不感兴趣 我只想打印它 但是 正如我上面所写 我只知道两种将二进制转换为十进制的方法 并且它们都需要加法 因此 我正在
  • 将预测映射回 ID - Python Scikit Learn DecisionTreeClassifier

    我有一个具有唯一标识符和其他功能的数据集 看起来像这样 ID LenA TypeA LenB TypeB Diff Score Response 123 456 51 M 101 L 50 0 2 0 234 567 46 S 49 S 3
  • 如何防止 LaTeX 在段落之间填充空格,以便下一节从下一页的顶部开始?

    我有一份两栏的论文 空间限制非常严格 我刚刚查看了手稿的最后一个版本 发现上半部分包含一个图形 如预期的那样 但在下半部分 段落之间有很多垂直空间 足以再挤 10 行 并且 LaTeX可能添加了它 以便在下一页的开头 一个新的编号部分将从页
  • 默认的 mb_internal_encoding() 值从何而来?

    如果我要编写一个新的 php 文件 并包含echo current mb internal encoding mb internal encoding 输出值从哪里来 它是如何 决定 如何管理的 背景 我编写了一个网络应用程序 我以为我已经
  • 将 JavaScript 模块或库导入 TypeScript

    多年来我一直在为同样的问题而苦苦挣扎 我似乎无法弄清楚如何可靠地使用 TypeScript 中的 JavaScript 库 我似乎是偶然让它工作的 然后继续前进 多年来都没有重新访问这些代码 直到外部变化导致破坏 就像今天我更新 VS 20
  • webRTC 数据通道消息的最大大小是多少?

    我正在尝试 webRTC 似乎每条消息中可以发送的字节数有任意限制 This guy https github com rohansingh rtc p2p我使用的示例选择了 100 加上一些 字节的限制 在我的测试中 它似乎接近 200
  • 为什么 Python 的 eval() 拒绝这个多行字符串,我该如何修复它?

    我正在尝试评估以下制表符缩进字符串 for index in range 10 os system echo str index 我得到 出现错误 语法无效 第 1 行 它在抱怨什么 我是否需要缩进以匹配 eval 语句 或者将其写入字符串
  • WPF 沿路径绘制箭头

    只是想知道我如何沿着路径绘制箭头 路径将改变方向并经过几个不同的点 箭头旨在向用户显示他们需要沿着路径行进的方向 我尝试过使用画笔 但它不起作用 因为我需要箭头来沿着路径调整它们的方向 See 路径动画概述 http msdn micros