使用代码将图像对象添加到wpf

2023-12-06

我是 C# 和 WPF 的新手,我正在尝试创建一个简单的汽车模拟器。模拟器的主要想法是,我有 C# 类来创建汽车对象,这些对象具有可以更改的速度变量和从左向右移动的计时器。我想用计时器进行运动,而不是例如doubleanimation。在 WPF 中,我有 AddCarButton 用于在 Canvas 中的某些点添加汽车。

问题是我不知道如何将汽车添加到画布中。这非常令人沮丧,因为这听起来不是什么大事,但我觉得我已经尝试了一切,但没有成功。

这是汽车级的最新尝试。我尝试过使用 Canvas.Set-methods 但失败了。

class car
{
    private int speed;

    public car(int s)
    {
        speed = s;
        Bitmap bmp = new Bitmap(
        System.Reflection.Assembly.GetEntryAssembly().
        GetManifestResourceStream("MyProject.Resources.car.png"));
        Graphics g = Graphics.FromImage(bmp);
        //Canvas.SetBottom(g, 0);
        //Canvas.SetLeft(g, 0);
        //Canvas.SetBottom(bmp, 0);
        //Canvas.SetLeft(bmp, 0);
    }
    public void addCar(car c)
    {
        Canvas.SetBottom(c, 0);
        Canvas.SetLeft(c, 0);
    }

如果您在 WPF 上编码,则不应使用Windows 窗体东西。处理您使用的图像位图源及其派生类,并以编程方式访问您通常使用的资源打包 URI。但这不是唯一的方法。

这是一个在画布控件上绘制一些图像的小示例。

画布的 XAML 代码可能如下所示(这只是一个示例):

<Canvas Height="400" HorizontalAlignment="Left" Margin="0" Name="canvas1" VerticalAlignment="Top" Width="400" />

和你的主窗口代码...

public partial class MainWindow : Window
{
    BitmapImage carBitmap = new BitmapImage(new Uri("pack://application:,,,/Images/BlueCar.png", UriKind.Absolute));
    Image[] carImg = new Image[5];
    Random rnd = new Random();

    public MainWindow()
    {
        InitializeComponent();
        double maxX = canvas1.Width - carBitmap.Width;
        double maxY = canvas1.Height - carBitmap.Height;
        for (int i = 0; i < carImg.Length; i++)
        {
            carImg[i] = new Image();
            carImg[i].Source = carBitmap;
            carImg[i].Width = carBitmap.Width;
            carImg[i].Height = carBitmap.Height;
            Canvas.SetLeft(carImg[i], rnd.NextDouble() * maxX);
            Canvas.SetTop(carImg[i], rnd.NextDouble() * maxY);
            canvas1.Children.Add(carImg[i]);
        }
    }
}

显然您需要更改图像资源的名称。顺便说一下,要添加图像,请转到Project > 添加现有项目...并选择您的图像文件,现在您的图像将出现在解决方案浏览器(默认情况下,Visual Studio 将图像资源存储在名为“Images”的文件夹中),如果选择它,您将在特性其窗口建立行动 is Resource, 不要改变这个!(有些人认为应该是嵌入资源但这是不正确的)。

如果你不明白这个new Uri("pack://application:,,,/Images/BlueCar.png", UriKind.Absolute),你应该阅读这个链接 on 打包 URI.

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

使用代码将图像对象添加到wpf 的相关文章

  • C 语言中的套接字如何工作?

    我对 C 中的套接字编程有点困惑 You create a socket bind it to an interface and an IP address and get it to listen I found a couple of
  • 如何在 C++ 中对四元结构进行有效排序?

    我有一个包含 x y z 和 w 成员的结构 如何高效排序 在 C 中首先按 x 然后按 y 按 z 最后按 w 如果你想实现字典排序 那么最简单的方法是使用std tie实现小于或大于比较运算符或函子 然后使用std sort http
  • 使用 strcpy 从整数生成指针,无需进行强制转换

    我不明白我做错了什么 我正在学习 C 很抱歉 如果这显然是错误的 但我正在尝试使用uthash http uthash sourceforge net 制作股票及其价格的哈希图 但是当我将股票添加到哈希映射时 我收到上述错误 我所做的就是从
  • 如何通过实体键添加/删除与实体框架的多对多关系?

    I tried using Entities e new Entities EntityKey key new EntityKey Entities Users UserId 20 User user new User EntityKey
  • 通过 TCP/.NET SSLStream 发送文件很慢/无法正常工作

    我正在编写一个与 SSL 配合使用的服务器 客户端应用程序 通过SSLStream 它必须做很多事情 不仅仅是文件接收 发送 目前 它的工作原理是 只有一个连接 我总是使用从客户端 服务器发送数据SSLStream WriteLine 并使
  • .NET:EventHandler 竞争条件修复如何工作?

    以下模式用于在引发事件时避免竞争条件 以防另一个线程取消订阅 MyEvent 使其为空 class MyClass public event EventHandler MyEvent public void F EventHandler h
  • 为什么数组不可赋值? [复制]

    这个问题在这里已经有答案了 据我所知 C 标准禁止使用数组作为可修改的左值 即在赋值的左侧 int lhs 4 rhs 4 0 1 2 3 lhs rhs illegal 现在 我一直想知道为什么会这样 我可以看到上面的语句 以及写入数组的
  • 如何在方法模板中使用模板类型的引用传递参数?

    我目前正在努力编译以下代码 首先是包含带有方法模板的类的头文件 ConfigurationContext h class ConfigurationContext public template
  • C++在子类中调用虚方法

    我有以下课程 class A protected A inner public virtual void doSomething 0 class B public A void doSomething if inner NULL inner
  • Apple IOS 上的 C# 应用程序 [已关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我有基于 C Net 的应用程序 有什么方法可以在 Apple IOS 上运行这些应用程序吗 我没有资
  • 关于 FirstOrDefault 或 SingleOrDefault

    FirstOrDefault 或 SingleOrDefault 将返回什么类型的数据 假设我的查询返回 3 条记录 例如 empid ename salary 1 joy 1500 2 rob 4500 3 jen 6500 所以如果我们
  • 获取RFC返回的嵌套结构的值?

    我是 C 新手 我有 rfc 它以嵌套结构的形式从 SAP 系统返回数据 但是当我使用以下方式获取该数据时 IrfcTable table rfc getTable exporting parameter et customer 它仅返回第
  • C# 的 user32 和内核方法列表 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 有没有一个很好的清单来说明我们可以从中进口什么user32 dll and kernel dll并在 C 中使用 我是 Windows A
  • 如何在控制台程序中获取鼠标位置?

    如何在 Windows 控制台程序中用 C 获取鼠标单击位置 点击时返回鼠标位置的变量 我想用简单的文本命令绘制一个菜单 这样当有人点击时 游戏就会注册它并知道位置 我知道如何做我需要做的一切 除了单击时获取鼠标位置 您需要使用 Conso
  • 初始化二维数组时出现分段错误

    我已经检查过我的代码是否正确地划分了内存空间 但是一旦我尝试将 2D 数组初始化为某些值 然后对这些值求和 我就会在 2x2 数组上收到分段错误 我想最终将我的代码扩展到更大的数组 但我什至无法让它在这里工作 我知道有很多关于 malloc
  • 如何重写(重新实现)QFileSystemModel 中的成员函数

    我已经为此苦苦挣扎了一段时间 Qt s QFileSystemModel由于图标获取算法非常糟糕 在获取数百个文件时速度非常慢 我想完全禁用图标 它们被提取到QFileSystemModel data方法不是虚拟的 QFileSystemM
  • 有没有办法将复选框列表绑定到 asp.net mvc 中的模型

    我在这里寻找一种快速简便的方法来在模型中发生回发时绑定复选框列表项的列表 显然现在常见的做法似乎是这样的form GetValues checkboxList 0 Contains true 这看起来很痛苦而且不太安全 有没有一种方法可以绑
  • Opencv 对象检测:ORB GPU 检测器和 SURF GPU 描述符提取器

    我只是做了一个小实验来尝试不同的检测器 描述符组合 我的代码使用 ORB GPU 检测器来检测特征 并使用 SURF GPU 描述符来计算描述符 我使用 BruteForceMatcher GPU 来匹配描述符 并使用 knnMatch 方
  • QT C++ QRegularExpression 多个匹配

    我想使用正则表达式从 QString html 中提取信息 我明确想使用正则表达式 无解析器解决方案 和类Q正则表达式 http qt project org doc qt 5 0 qtcore qregularexpression htm
  • 我可以创建一个 List> 吗?

    我正在尝试创建一个列表WeakReference使用 4 5 泛型实现 这样我就可以避免类型检查和转换WeakReference目标 但 WeakReference

随机推荐

  • 如何在两个地方获取锁,但在一个地方释放锁?

    我是 C 新手 我需要在两种方法中获取锁定 但在一种方法中释放 那行得通吗 public void obtainLock Monitor Enter lockObj public void obtainReleaseLock lock lo
  • 改进并行计算的内存布局

    我正在尝试使用 C AMP 优化用于并行计算的算法 Lattice Boltzmann 并寻找一些优化内存布局的建议 刚刚发现将一个参数从结构中删除到另一个向量 阻塞向量 中可以增加约 10 有人有任何可以进一步改善这一点的建议 或者我应该
  • Android:按下“后退”按钮时提示用户保存更改

    我有一个包含多个用户可编辑项目 EditText 字段 RatingBar 等 的活动 如果按下后退 主页按钮并且已进行尚未保存的更改 我想提示用户 读完android文档后 似乎这段代码应该放在onPause方法中 我尝试在 onPaus
  • 应用程序、域和基础设施层 (DDD) 中的存储库实现

    我有一个这样的项目结构 Here IApplicationDbContext cs接口定义在Application层及其实现是在Infrastructure层 类似地 对于名为 IRepository 的通用存储库 我对在哪里实施特定存储库
  • pandas 风格背景渐变行和列

    The 熊猫风格选项添加背景渐变非常适合快速检查我的输出表 但是 它可以按行或按列应用 是否可以将其立即应用于整个数据框 编辑 一个最小的工作示例 df pd DataFrame 3 2 10 4 20 1 3 2 5 4 6 1 df s
  • oauth、python 和 google API?

    使用Python验证谷歌API的最佳方法 1 认证 2 验证子 有没有oauth2 o python google的教程 你可以试试 https bitbucket org smartproject oauth2python 它是经过充分测
  • WindowsFormsHost 控件上的 ContextMenu

    因此 我的 WPF 应用程序中有一个 WindowsFormsHost 控件 托管 Dundas Chart 并且我想在其上放置一个 ContextMenu 我可以成功地将 ContextMenu 附加到任何普通的 WPF 控件 但它不适用
  • python中的Errno 10061,我不知道该怎么办

    我在Python中学习了套接字 当我尝试在一台计算机上编写套接字脚本时 它起作用了 但是当我尝试使用两台不同的计算机编写套接字脚本并打开连接的套接字时 它不起作用 一台电脑 服务器 import socket s socket socket
  • 如何使用 bash 脚本中的文档转换服务转换多个文档?

    如何使用以下命令转换多个文档文件转换服务 我有 50 100 个 MS Word 和 PDF 文档 我想使用convert documentAPI方法 例如 您可以提供多个 pdf 或 doc 文件吗 curl u username pas
  • “JSON 标准只允许一个顶级值”是什么意思?

    在我的 IntelliJ 编辑器中 我有一个 test json 文件 如下所示 第二条 json 记录显示一条错误消息 Json 标准仅允许一个顶级值 但这是一个有效的 JSON 文件 对吗 如何摆脱这个烦人的消息 reviewerID
  • ComBox 上的事件在 TableView 单元 JavaFx 内?

    我有 TableView 当我的程序启动 TableView 只有一行时 我还有 ComboBoxes 的 ArrayList 并为 TableView 中的每一行创建一个 ComboBox 当用户编辑 产品名称 单元格 其中应包含 Com
  • 从池中获取连接之前超时时间已过

    我每隔几天就会收到此错误 几天之内我不会看到错误 然后我会在一分钟左右的时间内得到 20 个左右的错误 我已经非常彻底地放弃了我的代码 以便我使用这个基本设置来访问数据库 try myConnection Open mySqlDataAda
  • 让寻呼机显示在 magento 列表上

    我们目前有一个报价页面 其中列出了我们希望向寻呼机显示的所有现有报价 我们在列表页面中有以下代码 我们已添加对寻呼机的调用 但它似乎根本没有显示前端 我还添加了历史记录页面 该页面显示带有寻呼机的列表 作为我们尝试模拟的工作页面的示例 由于
  • 在 Laravel 5.4 中获取上传失败的文件的文件名

    如何获取上传失败的文件的文件名并将其传递给验证错误消息 例如 file 0必须是 1024 KB 就像 失败文件样本 jpg必须是 1024 KB 下面是示例代码安排 messages mimes gt File s must be of
  • 共享对象位置

    我正在使用此方法将共享对象保存在特定位置 但我无法给出路径 SharedObject getLocal save how to give path here for window 这给出了以下错误 Error Error 2130 Unab
  • 点击后退按钮但不终止活动并让它进入后退堆栈(Android)

    我有 3 项活动 A B 和 C 我通过单击按钮动态地扩展 Activity B 并且用户可以添加任意数量的视图 操作是这样的 用户看到 活动 A 首先输入他的详细信息并单击保存按钮 我将他带到 活动 B 在那里他可以多次添加某些字段 当他
  • 更新的数据(在数据库中)通过 JPA/Eclipselink 不可见[重复]

    这个问题在这里已经有答案了 我有 Oracle DB 和 Java 项目 它使用 JPA Eclipselink 连接到数据库 问题是 当数据库中的某些数据更新时 手动使用 Oracle SQL Developer 这些数据通过 JPA 不
  • 无法获取日本的交通路线

    搜索路线35 443708 139 638026 to 35 689487 139 691706产生结果谷歌地图 但是对路线 API 的此查询不会 有人有主意吗 这似乎是日本特有的 如果您实际对此进行测试 则需要将上面的出发时间更新为现在
  • Rails、Heroku 未加载我的库

    我正在一个新的 Rails 应用程序中工作 并在中创建了一个小实用程序类RAILS ROOT lib 我在其中一个控制器中使用此类require 在本地 此类已正确加载 但当我在 heroku 上部署应用程序时 它崩溃并显示 LoadErr
  • 使用代码将图像对象添加到wpf

    我是 C 和 WPF 的新手 我正在尝试创建一个简单的汽车模拟器 模拟器的主要想法是 我有 C 类来创建汽车对象 这些对象具有可以更改的速度变量和从左向右移动的计时器 我想用计时器进行运动 而不是例如doubleanimation 在 WP