Tag: wpf

快速将Bitmap转换为BitmapSource wpf

我需要在30Hz处在Image组件上绘制图像。 我用这个代码: public MainWindow() { InitializeComponent(); Messenger.Default.Register(this, (bmp) => { ImageTarget.Dispatcher.BeginInvoke((Action)(() => { var hBitmap = bmp.GetHbitmap(); var drawable = System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap( hBitmap, IntPtr.Zero, Int32Rect.Empty, BitmapSizeOptions.FromEmptyOptions()); DeleteObject(hBitmap); ImageTarget.Source = drawable; })); }); } 问题是,使用此代码,我的CPU使用率约为80%,如果没有转换,则大约为6%。 那么为什么转换位图这么长? 是否有更快的方法(使用不安全的代码)?

如何将DataTable绑定到Datagrid

我有一个问题将DataTable绑定到DataGrid 。 我已经搜索过解决方案但是无法摆脱错误。 使用WindowsForms时绑定工作正常,因此DataTable是正确的。 我只是无法将其绑定到WPF-DataGrid。 错误消息:未处理AmbiguousMatchException 资料来源:mscorlib 我已经设置了新项目来摆脱任何不良链接等。 XAML的代码: 我已经尝试过跟随C#-Code: grid1.ItemsSource = dt.DefaultView; 要么 grid1.DataContext = dt.DefaultView; 要么 grid1.DataContext = dtex; 任何帮助表示赞赏。

更改ViewModel的视图

我正在尝试为mt WPF应用程序实现MVVM设计模式。 为了将视图连接到视图模型,我使用ResourceDictionary (在Application.Resources ),看起来像 然后将视图模型简单地放入内容演示者中以显示它们。 现在,当用户按下按钮时,我想使用不同的视图显示SampleViewModel 。 如何更改SampleViewModel使用的数据模板?

编号列表框

我有一个已排序的列表框,需要显示每个项目的行号。 在这个演示中,我有一个带有Name字符串属性的Person类。 列表框显示按名称排序的人员列表。 如何在列表框的datatemplate中添加行号??? XAML: 代码背后: using System; using System.Collections.ObjectModel; using System.Windows.Data; using System.Windows; using System.ComponentModel; namespace NumberedListBox { public partial class Window1 : Window { public Window1() { InitializeComponent(); Persons = new ObservableCollection(); Persons.Add(new Person() { Name = “Sally”}); Persons.Add(new Person() { Name = “Bob” }); Persons.Add(new Person() { Name = “Joe” }); Persons.Add(new […]

MVVM Light 5.0:如何使用导航服务

在最新版本的MVVM Light note中 ,已经表明MVVM Light现在提供了“导航服务”。 但我和我的朋友谷歌无法找到如何使用它。 我可以看到我可以向ServiceLocator请求一个INavigationService ,所以我看到我可以要求转到另一个页面,但是: 我创建了一个新的窗口,我希望为“页面”保留一个特定的区域,我该如何指定? 如何指定所有可用页面? 有什么我应该打电话的吗? 给INavigationService的参数格式是什么 这个图书馆有官方文件吗? 因为目前我发现它很好地编码并且工作正常,但是当我要搜索如何使用它时,我从来没有找到如何使用的文档/示例,除了他的博客有一些条目。 这非常令人沮丧。 我找到的唯一文件就是这个 ,我对Pluralsight不太熟悉,但似乎必须每月订阅一次(作为个人,试图在我的空闲时间申请,是不可能的)。

实现WPF TextBoxes的validation

我有3个TextBoxes( Id1 , Name和Salary )。 Id和Salary应包含整数, Name应仅包含字符。 我需要对TextBox进行validation,它应该在输入错误的字符或整数时显示错误。 也可以只在没有代码隐藏的Xaml中完成吗? 请帮我提供所需的代码 这是Xaml代码:

将Generic 转换为Generic

我有一个基本WPF UserControl,它处理派生UserControls的一些常用function。 在任何派生的UserControl的代码隐藏中,我调用一个事件 private void SomeClick(object sender, RoutedEventArgs e) { HandleClick(sender); MyDataGrid.Items.Refresh(); } 在我的基础UserControl我做 public class BaseUserControl : UserControl { protected void HandleClick(object sender) { var vm = (BaseViewModel)DataContext; … } } 这会引发InvalidCastException,因为DataContext的类型为BaseViewModel但派生类型类似于BaseViewModel或BaseViewModel 。 我怎么能这样做?

防止在WPF代码中使用Dispatcher.Invoke

我本质上是一个网络和后端程序员。 通常我尝试avaoid制作Windows程序。 现在我必须创建一个WPF客户端。 我有一个后台任务,每隔一段时间就会举办一次活动。 (它像轮询器一样工作,当满足标准时,会引发一个事件)。 Noob和我一样,我写了这个附加到事件的代码来更新UI。 private void IsDisconnectedEvent() { UserWindow.Visibility = Visibility.Hidden; DisconnectWindow.Visibility = Visibility.Visible; } 这给出了一个例外,因为我不在同一个线程上。 经过一些谷歌搜索后,我发现我应该改变代码: private void IsDisconnectedEvent() { Dispatcher.Invoke(() => { UserWindow.Visibility = Visibility.Hidden; DisconnectWindow.Visibility = Visibility.Visible; }); } 这是有效的,但这不是唯一的事件,因此使我的代码可怕的丑陋。 有没有更好的方法来做到这一点?

MVVM Light&WPF – 将Window的多个实例绑定到ViewModel

我正在研究MVVM中的第一个项目,我选择使用MVVM Light Toolkit。 我有一个GameViewModel ,可以在我的游戏主屏幕上处理业务。 我需要找到如何在执行命令时将Adventurer实例作为参数打开一个新窗口( AdventurerView ),将其绑定到AdventurerViewModel ,以及显示和返回数据。 此窗口的实例将经常打开和关闭。 我已经被困在这几天了,这让我发疯了。 我想学习如何以MVVM友好的方式执行此操作,最好使用MVVM Light或纯XAML提供的工具。 我尝试过使用MVVM Light的ViewModelLocator但是因为AdventurerView是一个窗口它不起作用; 虽然该程序仍在编译和运行,但它说“不能把窗口放在一个样式中”。 我可以做些什么改变才能做到这一点? 或者是否有另一种方法在XAML中绑定它们? 或完全是另一种方法? 我真的很想能够继续前进。 我也尝试过使用MVVM Light的信使无效(但仍未解决View / ViewModel问题)。 我只需要能够创建一个绑定到AdventurerViewModel的窗口并显示/返回相应的数据。 AdventurerView.xaml目前处于默认状态,但我觉得如果我可以绑定可能有用的相应数据(DataContext)。 AdventurerViewModel也很简单 class AdventurerViewModel : ViewModelBase { #region Members private Adventurer _adv; #endregion #region Properties public Adventurer Adv { get { return _adv; } set { _adv = value; } […]

如何在WPF或WinForms中呈现公式

更新2018 TL; DR; LaTEX for WPF https://github.com/ForNeVeR/wpf-math 原始问题我需要有一种方法在Windows窗体或WPF中绘制数学公式。 一些“FormulaTextBox”控件正是我需要的。 我不是要问LaTEX的完整实现,但至少有一些超出RichTextBox的可能性,包括分割线,平方根等。