Tag: wpf

wpf InteropBitmap到位图

我有一个奇怪的问题。 我正在尝试检索已经加载到webbrowser控件中的图像。 以下代码在WinForms应用程序中正常工作: IHTMLControlRange imgRange = (IHTMLControlRange)((HTMLBody)__ie.NativeDocument.BODY).createControlRange(); foreach (IHTMLImgElement img in __ie.NativeDocument.Images) { imgRange.add((IHTMLControlElement)img); imgRange.execCommand(“Copy”, false, null); System.IO.MemoryStream stream = new System.IO.MemoryStream(); using (Bitmap bmp = (Bitmap)Clipboard.GetDataObject().GetData(DataFormats.Bitmap)) { bmp.Save(stream, System.Drawing.Imaging.ImageFormat.Bmp); var image = System.Drawing.Image.FromStream(stream); } } 但是,如果我在WPF应用程序中使用相同的代码会给出错误 using (Bitmap bmp = (Bitmap)Clipboard.GetDataObject()……. 错误如下: “无法将’System.Windows.Interop.InteropBitmap’类型的对象强制转换为’System.Drawing.Bitmap’。” 我该如何解决这个问题? 请任何人都可以提供任何指导。 先感谢您。

将枚举值绑定到标签XAML

我正在使用Enum字段来跟踪我的程序状态。 public enum StatiMacchina { InAvvio = 1, Pronta = 2, InLavorazione = 3, InMovimento = 4, InAttesa = 5, InErrore = 6 } 我想绑定跟随字段的状态(在主窗口中) public StatiMacchina StatoMacchina { get; set; } 在XAML中带有标签。 我使用转换器(转换function下方) public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { switch ((StatiMacchina)value) { case StatiMacchina.InAvvio: return “txt1”; case StatiMacchina.Pronta: return […]

我可以在C#/ WPF中获取绑定对象的Type()(即使绑定值为null)?

我对未知来源有约束力。 我只有绑定。 我没有其他方法来查看绑定对象。 我需要找出绑定对象的Type,即使该值为null(这是我的问题所在)。 我通过绑定到一个对象来评估绑定,然后使用该对象作为获取Type的方法,但即使值为null,我也需要知道该类型。 例如,我有一个这样的类: public class Customer{ public string Name { get; set; } public int Age { get; set; } } 现在,如果我有一个WPF控件绑定到任何这些属性(让我们假设它们是依赖属性)我想获取属性的类型,即使该值为null。 所以,我有一个自定义控件,现在有一个Binding对象,例如代表{Binding Name}。 如何使用C#获取“绑定对象”的类型?

多表格绑定数据

我的项目有两个WPF表单:Form1和Form2。 在Form1中,我有1个按钮来调用Form2,textBox1,textBox2,textBox3,textBox4,Form2只有一个textBox和一个Save按钮。 所以当我点击按钮时,它会显示Form2。 在textBox中我创建了一个模板文本,如: “blablabla %txt1% blablabla %txt2% blabla %txt3% blabla” 我单击“保存”按钮以保存它。 返回Form1时,textBox4将显示模板文本中的内容,其中%txt1%,%txt2%,%txt3%将更改取决于textBox1,textBox2,textBox3。 我打算使用MultiBinding将textBox1,2,3中的内容绑定到textBox4中,就像这样: <MultiBinding StringFormat = "blablabla {0} blablabla {1} blabla {2} blabla" 而我的问题是:如何获得 “blablabla {0} blablabla {1} blabla {2} blabla” 从Form2中的textBox并将其放到StringFormat?

获取图像高度和宽度

用C#编写的WPF:我有一个程序,用户可以点击一个框,弹出一个对话框,可以选择任何图像。 他们选择的任何图像都将显示在框中。 我希望能够显示图像的宽度和高度,因为如果他们选择的图像很小,它会resize以适应框。 但我想显示他们选择的图像的实际宽度和高度。 我怎样才能做到这一点?

WPF是否刷新类似于Windows窗体的绘图?

因此,如果我有一个WPF窗口,那么在WPF窗口上移动另一个窗口会导致WPF窗口像Windows窗体一样进行数千次重绘吗? 我想知道在这种情况下使用向量的效果,而不是像Window Forms一样基于位图。

事件处理程序位于与MainWindow不同的类中

所以我按照以下网站上的指南来限制文本框可以接受的字符。 How to limit or prevent characters in a TextBox in C#? Or How to create a NumberTextBox or DigitBox object? 我的问题是我无法弄清楚如何在辅助类中创建事件处理程序触发器。 基本上我如何告诉VS在该类而不是MainWindow中查找事件处理程序代码? 我试过搜索,但显然不知道使用的正确术语。 我使用的xaml参考是 xmlns:DigitBox=”clr-namespace:System.Windows.Controls;assembly=PresentationFramework” 有任何想法吗?

使用摇晃效果左右动画WPF窗口?

有人可以告诉我如何从当前位置动画一个窗口。 我正在寻找一种震动效果,只需摇动左右窗口就可以说5到6次。 我知道我需要使用Animation.By。 这是我已经开始但我没有走得太远的事情。 这不行。 我已设法获得正确的摇晃效果,但我无法从Windows当前位置执行此操作。 所有帮助将不胜感激。

来自System.Windows.Forms的AccessViolationException,在WPF中使用WinFormsHost

在开发WPF / WinForms互操作应用程序时,我遇到了一个令人讨厌的问题。 我一直试图解决这个问题三天,但我无法取得任何进展。 我怀疑我能提供足够的信息来获得解决方案,但我正在寻找能够解释这里究竟发生了什么的人吗? 我使用的组件是AxMapControl(ESRI ArcGIS Engine 9.3.1 SP2),据我所知,它是COM包装的本机代码,公开为WinForms控件。 该组件使用WPF WinFormsHost代理嵌入在我们的WPF(.NET 3.5)客户端软件中。 应用程序会定期使用AccessViolationException崩溃。 这总是发生在用户鼠标点击地图控件时,但似乎没有任何押韵或原因在什么具体输入。 堆栈跟踪始终相同: System.AccessViolationException:尝试读取或写入受保护的内存。 这通常表明其他内存已损坏。 在System.Windows.Forns.Forms.Forf.DefWndProc上的System.Windows.Forms.NativeWindow.DefWndProc(Message&m)处的System.Windows.Forms.UnsafeNativeMethods.CallWindowProc(IntPtr wndProc,IntPtr hWnd,Int32 msg,IntPtr wParam,IntPtr lParam) (Message&m)System.Windows.Fornd.OndMessage(Message&m)位于System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message&m)的System.Windows.Forms.AxHost.WndProc(Message&m)处的System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message&m)在System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd,Int32 msg,IntPtr wparam,IntPtr lparam) 因为exception似乎抛出了我的代码启动的任何调用堆栈之外,我无法弄清楚如何捕获exception并以编程方式处理它。 此问题发生在调试模式以及发布版本中。 但它确实不会出现在所有计算机上,但我能够在Windows 7和XP以及.NET framework 3.5和4.0上复制此问题。 在崩溃时检查进程是什么,exception似乎是在GAC部署的DLL上似乎有多个CreateFileMapping操作失败,结果FILE LOCKED WITH ONLY READERS 。 此视图已被过滤以仅显示该类型的结果,但似乎每个DLL恰好发生两次。 这是什么意思吗? 现在,很明显我对发生的事情毫无头绪,以及如何解决这个问题。 如果你有一个线索,你能否善待并向我解释我正在处理的问题类型? 知道如何调试这个问题吗?

c#中的嵌入字体

我已经尝试了在c#中的wpf应用程序中嵌入字体。 字体的名称是’Roboto’。 文件名是roboto.ttf,如果有用的话。 我已经确定它是在汇编中编译的。 那么如何在TextBlock应用字体呢?