Tag: wpf

WPF WebBrowser控件 – 如何抑制脚本错误?

我在这里find了类似的问题: 如何在使用WPF WebBrowser控件时抑制脚本错误? 但是这些解决scheme都不适合我。 我需要停止显示popup窗口,因为我使用WebBrowser来自动执行网站上的pipe理任务。 SuppressScriptErrors似乎不是我的WebControl上的可用属性:(

WPF错误:无法find目标元素的治理FrameworkElement

我有一个具有图像的行的数据网格。 这个图像被绑定到某个状态的触发器。 当状态改变时,我想改变图像。 模板本身设置在DataGridTemplateColumn的HeaderStyle上。 这个模板有一些绑定。 第一个绑定日显示它是哪一天,并且状态用触发器改变图像。 这些属性在ViewModel中设置。 属性: public class HeaderItem { public string Day { get; set; } public ValidationStatus State { get; set; } } this.HeaderItems = new ObservableCollection<HeaderItem>(); for (int i = 1; i < 15; i++) { this.HeaderItems.Add(new HeaderItem() { Day = i.ToString(), State = ValidationStatus.Nieuw, }); } 数据网格: <DataGrid x:Name="PersoneelsPrestatiesDataGrid" […]

从Alt-Tab程序切换器隐藏窗口的最佳方法是什么?

我几年来一直是一个.NET开发人员,这仍然是我不知道如何正确执行的事情之一。 通过Windows窗体和WPF中的属性隐藏窗口很容易,但据我所知,这并不能保证(或者甚至影响)从Alt + Tab对话框中隐藏窗口。 我看到隐藏的窗口显示在Alt + ↹Tab中 ,我只是想知道什么是保证窗口永远不会出现(可见或不可见)在Alt + ↹Tab对话框中的最佳方法。 更新:请参阅下面我发布的解决scheme。 我不允许将自己的答案标记为解决scheme,但迄今为止,这是唯一可行的解​​决scheme。 更新2: Franci Penov现在有一个合适的解决scheme,看起来不错,但还没有尝试过。 涉及一些Win32,但避免了蹩脚的屏幕窗口创build。

没有输出到WPF应用程序的控制台?

我从一个非常简单的WPFtesting应用程序使用Console.WriteLine(),但是当我从命令行执行应用程序时,我看不到任何东西被写入控制台。 有人知道这里可能会发生什么吗? 我可以通过在VS 2008中创build一个WPF应用程序来重现它,并在任何执行的地方添加Console.WriteLine(“text”)。 有任何想法吗? 我现在需要的只是Console.WriteLine()这样简单的东西。 我意识到我可以使用log4net或其他日志logging解决scheme,但我真的不需要这个应用程序的多lessfunction。 编辑:我应该记住,Console.WriteLine()是为控制台应用程序。 哦,没有愚蠢的问题,对不对? :-)我现在只使用System.Diagnostics.Trace.WriteLine()和DebugView。

用WPF实现日志查看器

我寻求build议,以实现与WPF的控制台日志查看器的最佳方法。 它应该符合以下标准: 快速滚动100.000+行 一些条目(如堆栈跟踪)应该是可折叠的 长项目包装 该列表可以按不同的标准过滤(search,标签等) 最后在添加新项目时应该保持滚动 线元素可以包含某种添加格式,如超链接和计数器 总的来说,我有一些想法,比如FireBug和Chrome的控制台窗口。 我玩了这个,但我没有取得太多的进展,因为… – 数据网格无法处理不同的项目高度 – 滚动位置只是释放滚动条后更新(这是完全不可接受的)。 我很确定,我需要某种forms的虚拟化,并愿意遵循MVVM模式。 任何帮助或指针是受欢迎的。

ObservableCollection和BindingList之间的区别

我想知道ObservableCollection和BindingList之间的区别,因为我已经使用它来通知源中的任何添加/删除更改,但实际上我不知道什么时候更喜欢一个。 为什么我会select其中一个? ObservableCollection<Employee> lstEmp = new ObservableCollection<Employee>(); 要么 BindingList<Employee> lstEmp = new BindingList<Employee>();

如何用backgroundworker更新GUI?

我花了整整一天的时间试图让我的应用程序使用线程,但没有运气。 我已经阅读了很多关于它的文档,但是我仍然有很多错误,所以我希望你能帮助我。 我有一个很耗时的方法调用数据库并更新GUI。 这一直发生(或大约每30秒)。 public class UpdateController { private UserController _userController; public UpdateController(LoginController loginController, UserController userController) { _userController = userController; loginController.LoginEvent += Update; } public void Update() { BackgroundWorker backgroundWorker = new BackgroundWorker(); while(true) { backgroundWorker.DoWork += new DoWorkEventHandler(backgroundWorker_DoWork); backgroundWorker.RunWorkerAsync(); } } public void backgroundWorker_DoWork(object sender, DoWorkEventArgs e) { _userController.UpdateUsersOnMap(); } } 使用这种方法,我得到一个exception,因为背景工作不是和STA线程(但从我能理解这是我应该使用)。 我已经尝试了一个STA线程,并给了其他错误。 我认为这个问题是因为我尝试在进行数据库调用时更新GUI(在后台线程中)。 […]

InitializeComponent()是做什么的,它在WPF中是如何工作的?

InitializeComponent()做什么的,它在WPF中是如何工作的? 一般来说,首先,我会特别想知道施工顺序的细节,当有附加属性的时候会发生什么。

什么是DataContext的?

作为将DataContext与WPF中的另一个属性关联的问题的延续。 在研究的最后,我很惊讶地发现,当人们写这样的话: <Label Content="{Binding Path=Name}" /> Content属性绑定的DataContext是Label控件本身! 它仍然有效的事实是由于来自最近的父级的DataContext值的默认inheritance。 但是,如果将此标签包装在自定义控件中,并且不希望将数据绑定到该控件的DataContext属性,则更可能喜欢: <Controls:SearchSettings Settings="{Binding Path=Settings}" /> 在这里,你是。 现在,您需要将SearchSettings控件的“设置Settings为DataContext ,对于“内部Label进行绑定,但不能,因为这将触发Settings属性的重新绑定。 我无法看到使用不同来源混合绑定属性的要点: DataContext , ElementName等。为什么我会使用DataContext ?

WPF CreateBitmapSourceFromHBitmap()内存泄漏

我需要逐个像素地绘制图像,并将其显示在WPF中。 我正在尝试通过使用System.Drawing.Bitmap然后使用CreateBitmapSourceFromHBitmap()为WPF图像控件创build一个BitmapSource 。 我有一个内存泄漏的地方,因为当CreateBitmapSourceFromBitmap()被重复调用时,内存使用率上升,直到应用程序结束时不下降。 如果我不调用CreateBitmapSourceFromBitmap()内存使用情况没有明显的变化。 for (int i = 0; i < 100; i++) { var bmp = new System.Drawing.Bitmap(1000, 1000); var source = System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap( bmp.GetHbitmap(), IntPtr.Zero, Int32Rect.Empty, System.Windows.Media.Imaging.BitmapSizeOptions.FromEmptyOptions()); source = null; bmp.Dispose(); bmp = null; } 我能做些什么来释放BitmapSource内存?