wpf中可点击图像映射的最佳方法

2024-02-05

我有一个包含 c# WPF 中许多部分的图像 我想让每个部分都点击思考 我尝试将图像拆分为多个部分并在每个部分上创建事件 图像,但问题是图像的嵌套部分 制作图像地图的最佳方法是什么?


您可以使用 Microsoft Expression Studio 中包含的 Expression Design 轻松完成此操作。这是你要做的步骤:

  1. 将图像添加到 Expression Design。
  2. 然后你可以使用PaintBrush工具将图像分割成你想要的部分。
  3. 然后您必须将其导出到 xaml。在导出窗口中您可以选择 Xaml Silverlight 3

画布作为格式,路径作为文本。

如您所知,它会自动将您在图像上绘制的对象转换为带有所有坐标的路径对象。

然后,您可以复制导出的 xaml 并将其粘贴到您的应用程序中。

您可以从 Dreamspark 免费下载 Expression Studio。

我刚刚制作了示例并将其导出到 xaml:

<Canvas xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" x:Name="Untitled1" Width="62" Height="62" Clip="F1 M 0,0L 62,0L 62,62L 0,62L 0,0" UseLayoutRounding="False">
    <Canvas x:Name="Layer_1" Width="62" Height="62" Canvas.Left="0" Canvas.Top="0">
        <Image x:Name="Image" Source="Untitled1_files/image0.png" Width="1920" Height="1080" Canvas.Left="0" Canvas.Top="0">
            <Image.RenderTransform>
                <TransformGroup>
                    <MatrixTransform Matrix="1,0,0,1,-929.667,-510.667"/>
                </TransformGroup>
            </Image.RenderTransform>
        </Image>
        <Path x:Name="Path" Width="159.722" Height="161.743" Canvas.Left="82.757" Canvas.Top="-0.415951" Stretch="Fill" Fill="#FFE7DEDE" Data="F1 M 82.8307,30.8333C 81.8859,46.01 90.3304,60.6249 90.3304,75.831C 90.3304,88.8304 91.9427,101.93 90.3304,114.829C 89.0281,125.247 87.0101,136.367 90.3304,146.327C 95.3301,161.327 119.518,161.327 135.328,161.327C 157.018,161.327 175.778,144.86 193.825,132.828C 209.523,122.363 235.198,120.495 241.823,102.83C 243.994,97.0391 240.326,90.2367 237.323,84.8306C 230.656,72.8294 223.759,60.756 214.824,50.3323C 205.057,38.9377 205.748,18.0458 192.325,11.3342C 183.723,7.03329 173.332,8.29683 163.827,6.83447C 144.945,3.92956 125.479,-3.30947 106.83,0.834766C 94.3289,3.61269 83.6265,18.0524 82.8307,30.8333 Z "/>
    </Canvas>
</Canvas>

导出的部分是Path对象。你可以在上面做任何你想做的事。例如,您可以处理该路径的 MouseClick 事件并更改路径的背景......

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

wpf中可点击图像映射的最佳方法 的相关文章

随机推荐

  • 在 Txt 文件中查找字符串,删除整行

    我目前正在使用 node js 创建一个 IRC 机器人 该机器人允许用户将歌曲链接添加到数据库中 每次有人提交一首歌曲时 它都会添加到 shuffle txt 的新行中 如下所示 user1 The Beatles Yesterday y
  • expoClientID 去了哪里?

    我正在将 Facebook 登录添加到我的博览会应用程序中 它在文档 https docs expo dev guides authentication facebook进入我的expoClientId某处 问题是我不知道该把它放在哪里 我
  • 如何在 PHP 中绑定 SQL 变量?

    我想绑定变量而不是仅仅构建 SQL 字符串 无论如何要在 Php 中执行此操作吗 MySQL 或 PostgreSQL 的答案都会有帮助 Thanks 有例如PDO http docs php net pdo pdo 和准备好的语句 包括绑
  • 从布局 xml 文件旋转 ImageView 源

    我的布局中有这个 ImageView
  • Android 上的 flash.sensors.Accelerometer 在网络浏览器中

    加速度计UPDATE事件永远不会触发 但是isSupported当 Flash 应用程序在 Android Web 浏览器中运行时 返回 true 我怎样才能让它发挥作用 this accelerometer new Acceleromet
  • php/mysql 将行添加在一起以获得总计

    这是场景 我正在生成一份关于在特定时间段内需要缴纳会费的所有会员的报告 我成功选择每个数据库条目并将其显示为 html 表中的一行 问题是报告必须具有的总字段数 每个成员根据他们使用的服务支付不同的金额 因此我必须单独添加每个字段中的值以确
  • 服务器启动时的调用方法[重复]

    这个问题在这里已经有答案了 我试图在我的网络应用程序启动时调用一个方法 目的是启动一个计时器 以定义的时间间隔执行一些工作 当我的 jboss 7 1 Web 应用程序启动时 如何调用函数 helloworld 如果您想在 Web 应用程序
  • 如何使用 sqlalchemy-migrate 将列类型从字符变化更改为整数

    我正在使用 sqlalchemy migrate 来更改 Postgre SQL 数据库中表中的一列的类型 我使用的升级脚本是 cofing utf 8 from sqlalchemy import MetaData Table Colum
  • 如何将元标记设置为 部分中的第一个标记?

    我正在使用 JSF2 GlassFish 3 1 PrimeFaces 2 x 我在 IE9 上遇到奇怪的渲染问题 我应该能够通过插入以下内容来强制 IE9 呈现为 IE9 但问题是 它不起作用 因为 我被告知 元标记必须是该部分中的第一个
  • C# 中的堆栈溢出

    我有这个寄存器来注册我需要的所有对象 public static class ObjectRegister public static List
  • 在 WCF 服务库项目中使用自定义 ServiceHostFactory

    我正在编写一个 WCF 服务 该服务在内部严重依赖于控制反转 我想在自定义 ServiceHostFactory 内引导 初始化我的 IoC 容器 我读过一些可用的不同钩子的示例 但它们似乎都不适合我 This approach http
  • AntiForgeryToken 登录后无效

    我有一个用户可以在不登录的情况下发布的表格 但是 如果他的电子邮件被识别 则需要密码 密码表单通过 Ajax 进行验证 如果成功 则提交主表单 两种形式都需要有效的 AntiForgeryToken 问题是 密码检查作为副产品还会使用户登录
  • Android:如何以编程方式突出显示 EditText?

    requestFocus 将光标移动到编辑框 但不突出显示它 我想突出它 就像它被触摸一样 我怎样才能做到这一点 尝试这个 field setSelection int startIndex int endIndex 第一个参数 start
  • Xamarin 是否有 #if 或 #ifdef 来确定平台?

    例如 ifdef iOS ifdef android 等 如果有 if就更好了 iOS if MOBILE Console WriteLine MOBILE is defined endif if IOS Console WriteLine
  • 在包装物品的行上添加水平线分隔符

    我使用 css flexbox 在行中放置未知数量的项目 如果需要 可以环绕到其他行 我的问题是 每行之间是否可以有一条水平线 Here http codepen io anon pen jbQpvP这是我所拥有的一个简单的例子 如果打开
  • 如何使用last_insert_rowid插入多行?

    假设我有一个包含两个表的数据库Persons and PhoneNumbers 其中PhoneNumbers表有一个外键Persons 如果我想在一次事务中插入一个拥有电话号码的人 我可以编写如下查询 BEGIN TRANSACTION I
  • 如何在java代码中使用.dll文件?

    我有一个 dll 文件 我必须在 java 中使用它 此 dll 文件有一个参数化方法 该方法应返回字符串类型 当我向它传递参数时 我收到的消息为Native methods do not specify a body 这是代码 packa
  • 使用建议时,Visual Studio 2017 强制在方法名称处添加“async”(Ctrl + .)

    我在使用 Visual Studio 2017 时遇到问题 当我想使用 await 调用方法并按 Ctrl 时 要向方法添加 async VS2017将强制在方法名称处添加 async 这有时很有用 但在某些覆盖方法 如 OnNaviged
  • 如何使用 dplyr 中的排列来对组进行排序?

    我想对数据进行分组 然后排列表格 以便首先显示具有最高值的组 例如 在 mtcars 数据集中 我想按气缸数对汽车进行分组 然后排列表格 以便具有最高平均值的组mpg首先显示 mtcars gt group by cyl gt arrang
  • wpf中可点击图像映射的最佳方法

    我有一个包含 c WPF 中许多部分的图像 我想让每个部分都点击思考 我尝试将图像拆分为多个部分并在每个部分上创建事件 图像 但问题是图像的嵌套部分 制作图像地图的最佳方法是什么 您可以使用 Microsoft Expression Stu