草庐IT

c# - 显示带有 WPF、Winforms 和双显示器的窗口

我有2个显示器和一个启动WPF窗口的WinForm应用程序。我想获取WinForm所在的屏幕,并在同一屏幕上显示WPF窗口。我该怎么做? 最佳答案 WPF不包括方便的System.Windows.Forms.Screen类,但您仍然可以使用它的属性来完成您在WinForms应用程序中的任务。假设this表示WinForms窗口,而_wpfWindow是一个已定义的变量,在下面的示例中引用WPF窗口(这将在您设置为打开的任何代码处理程序中WPF窗口,如某些Button.Click处理程序):Screenscreen=Screen.Fr

c# - WPF:在代码隐藏中引用应用程序范围的资源

我已经制作了我自己的自定义转换器,给定一个字符串返回一个Brush。现在我能够返回常量画笔,例如Brushes.Red等,但我真的想使用我在应用程序范围的资源中定义的自己的颜色。如何从我自己的自定义转换器类中引用应用程序范围的资源?我会使用FindResource但正如我所说,这是来self自己的转换器类,而不是窗口或控件。 最佳答案 如果这些已在您的应用程序中定义,您可以使用Application.Current.FindResource()按名称查找它们。 关于c#-WPF:在代码隐

c# - WPF ListViewItem 项目复选框。如何获取所有选中的项目?

我有这样的代码:产生这个窗口的:我如何知道选中了多少个复选框,并获取每个选中的CheckBox的值Tag? 最佳答案 我知道它已经过时了,但对于后代来说,如果人们对它不满意,这就是解决方案然后在cs文件中的listView1_SelectionChanged代码中privateListlstMyObject=newList();privatevoidlistView1_SelectionChanged(objectsender,SelectionChangedEventArgse){foreach(MyObjectitemine.R

c# - 为什么 .net 4.0 项目不能引用 4.5 程序集?

我正在开发一个针对.NET4.0的项目,现在我需要引用一个针对.NET4.5构建的第三方dll。visualstudio好像不接受?为什么?VS显示当前上下文中不存在dll名称。 最佳答案 因为你引用的是高版本。微软可以向后兼容,但不是“future兼容”。您需要将整个项目转换为更高版本,以便能够使用该二进制文件。不知道您在谈论什么技术,但如果是asp.net,请考虑在vNext中您可以在服务器上部署您自己的云clr版本。因此,您可能有2个版本的应用,一个针对4.5,另一个针对4.0。IntroducingvNext.如果这与您有关

c# - WPF 从 C# 代码设置文本框边框颜色

我有一个WPF应用程序,我必须在其中进行多次更新。其中一个更新是我正在从Label更改为TextBox我在许多从XAML设置文本框边框颜色的示例中看到,这对我不起作用,因为业务规则条件有红色或黑色我试过:lblValidMsg.BorderBrush=Brushes.Red;lblValidMsg.BorderBrush=System.Drawing.Color.Red;//converter.ConvertFromString("#FF0000");//borderColor;lblValidMsg.BorderBrush=SystemColors.Control;privateCo

c# - Visual Studio 2012 - 在 .NET 4.5 框架中找不到 System.Transactions 程序集

我试图在C#VisualStudio2012项目中添加对System.Transactions的引用,但System.Transactions在框架程序集中不可用,您可以在下面的屏幕截图中看到:有谁知道为什么System.Transactions对我不可用?我怎样才能让它重新出现?编辑:修复了屏幕截图,谢谢Marc! 最佳答案 为此发布了一个MicrosoftConnect条目,其中有一条评论建议您可以浏览它。给出的路径是:C:\ProgramFiles(x86)\ReferenceAssemblies\Microsoft\Fram

c# - 调用线程必须是 STA,因为在 WPF 中很多 UI 组件都需要这个

这个问题在这里已经有了答案:"ThecallingthreadmustbeSTA,becausemanyUIcomponentsrequirethis"errorwhencreatingaWPFpop-upWindowinthread(2个答案)关闭1年前。我的场景:voidInstaller1_AfterInstall(objectsender,InstallEventArgse){try{MainWindowObjMain=newMainWindow();ObjMain.Show();}catch(Exceptionex){Log.Write(ex);}}我收到错误消息“调用线程必

c# - 从 WPF 窗口获取 System.Windows.Forms.IWin32Window

我正在编写一个WPF应用程序,我想使用thislibrary.我可以通过使用为窗口获取一个IntPtrnewWindowInteropHelper(this).Handle但这不会转换为System.Windows.Forms.IWin32Window,我需要显示此WinForms对话框。如何将IntPtr转换为System.Windows.Forms.IWin32Window? 最佳答案 选项1IWin32Window只需要一个Handle属性,这并不难实现,因为您已经有了IntPtr。Createawrapper实现IWin32

c# - WPF DataBinding 没有更新?

我有一个项目,我将复选框的IsChecked属性与代码隐藏中的get/set绑定(bind)在一起。但是,当应用程序加载时,由于某种原因它不会更新。出于好奇,我将其精简到最基本的部分,如下所示://usingstatementsnamespaceNS{//////InteractionlogicforMainWindow.xaml///publicpartialclassMainWindow:Window{privatebool_test;publicboolTest{get{Console.WriteLine("Accessed!");return_test;}set{Console

c# - WPF Listview 访问 SelectedItem 和子项

好的,我的C#WPFListView控件有更多问题。这是它的全部荣耀:我正在用以下内容填充listView:XDocumentxdoc=XDocument.Load(GlobalVars.docPath+"\\tempSearchResults.xml");varitems=fromiteminxdoc.Descendants("Book")selectnew{ISBN=item.Element("ISBN").Value,Title=item.Element("Title").Value,AuthTexts=item.Element("Author").Value};foreach(