使用代码将图像对象添加到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 的相关文章

  • 没有特殊字符的密码验证器

    我是 RegEx 的新手 已经进行了大量搜索 但没有找到任何具体内容 我正在编写一个验证密码字符串的正则表达式 可接受的字符串必须至少具有 4 种字符类型中的 3 种 数字 小写字母 大写字母 特殊字符 我对包含有一个想法 也就是说 如果这
  • 根据属性的类型使用文本框或复选框

    如果我有这样的结构 public class Parent public string Name get set public List
  • 在一个数据访问层中处理多个连接字符串

    我有一个有趣的困境 我目前有一个数据访问层 它必须与多个域一起使用 并且每个域都有多个数据库存储库 具体取决于所调用的存储过程 目前 我只需使用 SWITCH 语句来确定应用程序正在运行的计算机 并从 Web config 返回适当的连接字
  • 如何在 Cassandra 中存储无符号整数?

    我通过 Datastax 驱动程序在 Cassandra 中存储一些数据 并且需要存储无符号 16 位和 32 位整数 对于无符号 16 位整数 我可以轻松地将它们存储为有符号 32 位整数 并根据需要进行转换 然而 对于无符号 64 位整
  • std::list 线程push_back、front、pop_front

    std list 线程安全吗 我假设不是这样 所以我添加了自己的同步机制 我认为我有正确的术语 但我仍然遇到问题 每个函数都由单独的线程调用 Thread1 不能等待 它必须尽可能快 std list
  • 如何连接重叠的圆圈?

    我想在视觉上连接两个重叠的圆圈 以便 becomes 我已经有部分圆的方法 但现在我需要知道每个圆的重叠角度有多大 但我不知道该怎么做 有人有主意吗 Phi ArcTan Sqrt 4 R 2 d 2 d HTH Edit 对于两个不同的半
  • WPF 数据绑定到复合类模式?

    我是第一次尝试 WPF 并且正在努力解决如何将控件绑定到使用其他对象的组合构建的类 例如 如果我有一个由两个单独的类组成的类 Comp 为了清楚起见 请注意省略的各种元素 class One int first int second cla
  • 人脸 API DetectAsync 错误

    我想创建一个简单的程序来使用 Microsoft Azure Face API 和 Visual Studio 2015 检测人脸 遵循 https social technet microsoft com wiki contents ar
  • 在 Unity 中实现 Fur with Shells 技术

    我正在尝试在 Unity 中实现皮毛贝壳技术 http developer download nvidia com SDK 10 5 direct3d Source Fur doc FurShellsAndFins pdf Fins 技术被
  • 使用 C# 中的 CsvHelper 将不同文化的 csv 解析为十进制

    C 中 CsvHelper 解析小数的问题 我创建了一个从 byte 而不是文件获取 csv 文件的类 并且它工作正常 public static List
  • WcfSvcHost 的跨域异常

    对于另一个跨域问题 我深表歉意 我一整天都在与这个问题作斗争 现在已经到了沸腾的地步 我有一个 Silverlight 应用程序项目 SLApp1 一个用于托管 Silverlight SLApp1 Web 的 Web 项目和 WCF 项目
  • 如何定义一个可结构化绑定的对象的概念?

    我想定义一个concept可以检测类型是否T can be 结构化绑定 or not template
  • 空指针与 int 等价

    Bjarne 在 C 编程语言 中写道 空指针与整数零不同 但 0 可以用作空指针的指针初始值设定项 这是否意味着 void voidPointer 0 int zero 0 int castPointer reinterpret cast
  • 为什么使用小于 32 位的整数?

    我总是喜欢使用最小尺寸的变量 这样效果就很好 但是如果我使用短字节整数而不是整数 并且内存是 32 位字可寻址 这真的会给我带来好处吗 编译器是否会做一些事情来增强内存使用 对于局部变量 它可能没有多大意义 但是在具有数千甚至数百万项的结构
  • 有没有办法让 doxygen 自动处理未记录的 C 代码?

    通常它会忽略未记录的 C 文件 但我想测试 Callgraph 功能 例如 您知道在不更改 C 文件的情况下解决此问题的方法吗 设置变量EXTRACT ALL YES在你的 Doxyfile 中
  • 使用特定参数从 SQL 数据库填充组合框

    我在使用参数从 sql server 获取特定值时遇到问题 任何人都可以解释一下为什么它在 winfom 上工作但在 wpf 上不起作用以及我如何修复它 我的代码 private void UpdateItems COMBOBOX1 Ite
  • C++ 中的参考文献

    我偶尔会在 StackOverflow 上看到代码 询问一些涉及函数的重载歧义 例如 void foo int param 我的问题是 为什么会出现这种情况 或者更确切地说 你什么时候会有 对参考的参考 这与普通的旧参考有何不同 我从未在现
  • 指针和内存范围

    我已经用 C 语言编程有一段时间了 但对 C 语言还是很陌生 有时我对 C 处理内存的方式感到困惑 考虑以下有效的 C 代码片段 const char string void where is this pointer variable l
  • 类型或命名空间“MyNamespace”不存在等

    我有通常的类型或命名空间名称不存在错误 除了我引用了程序集 using 语句没有显示为不正确 并且我引用的类是公共的 事实上 我在不同的解决方案中引用并使用相同的程序集来执行相同的操作 并且效果很好 顺便说一句 这是VS2010 有人有什么
  • Mono 应用程序在非阻塞套接字发送时冻结

    我在 debian 9 上的 mono 下运行一个服务器应用程序 大约有 1000 2000 个客户端连接 并且应用程序经常冻结 CPU 使用率达到 100 我执行 kill QUIT pid 来获取线程堆栈转储 但它总是卡在这个位置

随机推荐

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

    我是 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