Tag: wpf

如何在后台加载图像?

我正在尝试在后台加载图像,然后更新UI。 我整天都在玩这个,我不知道我错过了什么。 我一直收到以下错误: “调用线程无法访问此对象,因为不同的线程拥有它。” 我已经在示例后跟随示例,但我似乎无法找到答案。 我还在另一个BeginInvoke中包含了触摸UI的代码。 更新3:故事的寓意。 ImageSource对于访问不是线程安全的。 更新2:这必须是一个简单的解决方案:)。 我尝试了克隆,但这并没有带来成功,但我确实得到了一个不同的错误:“调用目标引发了exception。” 更新1:我尝试了BackgroundWorker,但我仍然得到相同的错误,但它发生在brush.ImageSource.Height上。 我是否正确地通知了用户界面? 有什么建议? 这是我的XAML: 以下是一些背后的代码: namespace Slideshow { public class Show { public Show() { BackgroundWorker bw = new BackgroundWorker(); bw.DoWork += new DoWorkEventHandler(bw_DoWork); bw.RunWorkerCompleted += new RunWorkerCompletedEventHandler(bw_RunWorkerCompleted); bw.RunWorkerAsync(); } void bw_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { BitmapSource bitmap = e.Result as BitmapSource; if (bitmap != […]

获取ConvertBack()方法中的Source值,以便在WPF绑定中实现IValueConverter

我将依赖属性绑定到WPF中的textboxex。 该属性是一个字符串,其中一些值以’/’分隔(例如:“1/2/3/4”)。 我需要将单个值绑定到单独的文本框,这对于以下Convert()方法的实现很好: public object Convert(object value, Type targetType, object parameter,System.Globalization.CultureInfo culture) { if (!string.IsNullOrEmpty(value as string)) { String[] data = (value as string).Split(‘/’); return data[Int16.Parse(parameter as string)]; } return String.Empty; } 我在xaml使用ConverterParameter来指定所需值的位置。 但是,问题在于ConvertBack()方法。 我不知道,如何获取源值,这样我就可以只添加或更改字符串中的一个值(在指定位置)。 谢谢你的帮助。

将相机图像渲染到WPF图像控件

我有一个uEye相机,我以1000毫秒的间隔拍摄图像的快照,我想在WPF Image控制中像这样渲染它们 Bitmap MyBitmap; // get geometry of uEye image buffer int width = 0, height = 0, bitspp = 0, pitch = 0, bytespp = 0; long imagesize = 0; m_uEye.InquireImageMem(m_pCurMem, GetImageID(m_pCurMem), ref width, ref height, ref bitspp, ref pitch); bytespp = (bitspp + 1) / 8; imagesize = width * height * bytespp; […]

WPF Toolkit Datagrid – 如何关闭选择?

我在WPF中有一个数据网格,我绑定到一个对象。 我有一个DataGridCheckBoxColumn,我希望用户能够通过并勾选他们想要的那些。 问题是他们必须点击两次,一次选择然后再次检查/取消选中。 你究竟怎么把它关掉,我一直在寻找方法来寻找答案。 datagrid具有SelectionMode和SelectionUnit属性 – 两者都不接受’none’或’go away’ 任何帮助表示赞赏! 我的代码在下面供参考

我什么时候可以处理IDisposable WPF控件,例如WindowsFormsHost?

WPF控件WindowsFormsHostinheritance自IDisposable。 如果我有一个包含上述某些控件的复杂WPF可视树,我可以使用哪些事件或方法在关机期间调用IDispose?

带有通用代码隐藏的WPF UserControl

我有这个代码: CustomUserControl.xaml.cs namespace MyProject { public partial class CustomUserControl : UserControl { … } } 而这个xaml: CustomUserControl.xaml 它不起作用,因为x:Class =“MyProject.CustomUserControl”与代码隐藏的generics类定义不匹配。 有没有办法让这项工作?

无法加载文件或程序集System.Threading.Tasks,Version = 2.5.19.0

我有一个使用google url shortener API的WPF(.NET 4)项目,我已经通过nugget安装了客户端库https://www.nuget.org/packages/Google.Apis.Urlshortener.v1/1.7.0.25-beta 该应用程序在Visual Studio中工作正常,但一旦发布就抛出exception无法加载文件或程序集System.Threading.Tasks,Version = 2.5.19.0这个以及所有其他程序集都存在于安装文件夹中,并且它随应用程序一起发布。 我搜索了互联网,人们建议手动绑定app.config中的依赖库,它仍然不起作用,因为app.config中已经提到了我的所有依赖库,下面是我的app.config看起来像

DoDragDrop禁用MouseMove事件

在DragDrop.DoDragDrop(…)开始拖放操作后,不再触发MouseMove事件。 我甚至试过了 AddHandler(Window.MouseMoveEvent, new MouseEventHandler(myControl_MouseMove), true); 最后一个参数意味着我甚至选择处理事件。 没有机会,似乎MouseMove事件根本就没有被解雇! 使用Drag&Drop时还能获得MouseMove事件的任何方法吗? 我想拖放一个控件,拖动这个控件时它应该跟随鼠标指针。 知道在这种情况下如何做到这一点?

在WPF应用程序中获取不活动/空闲时间

我正在寻找最好的方法来找出我的用户是否在我的WPF应用程序中空闲。 目前,我从操作系统中获取这个空闲时间,如果它们最小化应用程序,并在Internet上进行搜索,则操作系统中有一个进程,因此操作系统不会将此视为不活动时间,即使它们没有进行应用程序内的任何内容 但是,我想知道他们是否没有点击或在我的申请中做任何事情。 这就是我现在的空闲时间。 myApplication.MainMethod() { System.Windows.Forms.Timer myTimer = new System.Windows.Forms.Timer(); myTimer .Interval = 1000; myTimer .Tick += new EventHandler(Timer_Tick); myTimer .Start(); } void Timer_Tick(object sender, EventArgs e) { int idleTime= (int)Win32.GetIdleTime(); if (idleTime<certainNumber) { //do this } }

Winforms WPF Interop – WPF内容无法绘制

我有一个使用ElementHost来显示WPF UserControl的WinForm。 表单加载时,每50次左右,WPF内容无法绘制。 你可以通过WinForm chrome查看下面的内容。 调整窗口大小可以显示WPF内容。 这是一个已知的问题? 有人可以建议一个解决方法吗?