我处理一个大型C#应用程序(大约450,000行代码),我们经常遇到桌面堆和GDI句柄泄漏问题。WPF解决了这些问题,但我不知道升级的最佳方式是什么(我预计这会花费很长时间)。该应用程序只有几种形式,但它们可以包含许多不同的用户控件集,这些控件是通过编程确定的。这是公司内部应用,因此我们的发布周期非常短(通常为3周的发布周期)。是否有一些渐进的升级路径,或者我们是否必须付出巨大的努力才能承受冲击? 最佳答案 您可以从创建WPF主机开始。然后您可以使用控件来承载您当前的应用程序。然后,我建议在WPF中创建一个新控件库。一次一个,您可以
关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。关闭3年前。Improvethisquestion这道题就是关于如何开发一个WPF应用,控件样式与Windows10SettingsAPP完全匹配。在windows10settingApp中,combobox、togglebuttonslidercontrol等有不同的样式。这些自定义样式是否可以立即从Microsoft(.NET平台)使用?或者我需要努力工作以匹配这些Windows控件。或任何其他可用的第三方扩展或
我正在编写一个使用组件的WPF应用程序,该组件返回一个指向位图像素(步长*高度)的指针(IntPtr)。我事先知道位图是一个24位的rgb,它的宽度和高度。用这些位图更新图像控件构成了一个视频给用户,但我不确定最有效的方法是什么,大多数时候CPU使用率达到75%+,内存从40mb变化到500mb,我认为GC开始工作,然后再次下降到40mm。该应用开始没有响应。我该怎么办?谢谢! 最佳答案 您很可能正在分配新的位图,这些位图不是一次性的。您应该分配一个WriteableBitmap并更新它。链接的文档描述了锁定、更新和解锁Writea
执行完以下两个测试用例后,COM执行将打印到控制台。我做错了什么?如果我单独运行其中一个测试,或者如果我同时运行两个测试,异常只会被写入控制台一次。这让我怀疑我没有清理某种按AppDomain的资源。我已尝试使用NUnit和MSTest进行测试,两种环境中的行为相同。(实际上,我不确定在MSTest中运行这两个测试是否会导致一个或两个异常打印输出。)异常(exception):System.Runtime.InteropServices.InvalidComObjectException:COMobjectthathasbeenseparatedfromitsunderlyingRCW
有时我们多次使用复杂的方法,以至于忘记了完成任务的最简单方法。我知道如何进行命令绑定(bind),但我总是使用相同的方法。创建一个实现ICommand接口(interface)的类,并从View模型中创建该类的新实例,绑定(bind)就像一个魅力。这是我用于命令绑定(bind)的代码publicpartialclassMainWindow:Window{publicMainWindow(){InitializeComponent();DataContext=this;testCommand=newMeCommand(processor);}ICommandtestCommand;pub
我有一个项目,其中XmlDataProvider绑定(bind)到WPFDataGrid控件。我在DataGrid上设置了如下绑定(bind):用户可以毫无问题地使用DataGrid编辑条目。我无法完成的是允许用户使用DataGrid添加新行(即新人)。我怎么能允许这样做? 最佳答案 确保您设置了:CanUserAddRows="True"并且绑定(bind)类的默认构造函数可用。 关于c#-当它绑定(bind)到XmlDataProvider时,如何在WPFDataGrid中创建一个新
我是一名经验丰富的C#开发人员,但却是一名WPF新手。我无法通过网络搜索找到答案的基本问题(我认为)。这是简化的用例...我想在WPFTextBlock中显示一个字符串。所以我在XAML控件的代码隐藏中编写了一些C#代码...publicclassMyCoolControl:UserControl{publicvoidInitializeMyCoolControl(){this.DataContext="SomeStringOnlyAvailableAtRuntime";//Perhapsfromadatabaseorsomething...}}然后我像这样设置我的XAML:效果很好,
我想用c#常量替换源路径的路径部分,以便于路径管理,例如我有:在另一个类中我定义了常量:publicstaticreadonlystringUriImagesButtons="/Images/Big/PNG/";我想要一些类似的东西:这意味着我可以在需要时一次性更改全局路径。执行此操作的语法是什么? 最佳答案 最简单的方法是使用带有StringFormat的MultiBinding:在StringFormat参数中,您必须使用“{}”转义第一个大括号,这样XAML解析器就不会认为它是标记扩展。
假设我的应用程序碰巧有一个未处理的异常,或者它由于某种原因崩溃了。有什么方法可以让我在应用程序崩溃时捕获输出并显示错误报告对话框。我在想的是在后台运行一个小程序,它唯一的工作就是监听主应用程序的异常退出,然后显示“报告”对话框,用户可以在其中选择通过电子邮件将输出结果发送给我的错误。不太确定如何实现,或者这是否是正确的方法。报告错误消息是一件容易的事,但我不知道如何捕获未处理异常的输出或获取退出代码(我假设程序在崩溃时会给出0以外的退出代码).向正确的方向插入会很棒。 最佳答案 您最好的机会是在应用程序内部。有两个钩子(Hook):
我正在使用枚举在我的组合框中登记值。我想编写一个转换器来显示所选枚举值的“描述”。并且,当被选中时,它将返回枚举值。大多数在线转换器都没有实现ConvertBack()方法(这就是我在这里发帖的原因)。 最佳答案 这里是ConvertBack方法:publicobjectConvertBack(objectvalue,TypetargetType,objectparameter,System.Globalization.CultureInfoculture){returnvalue;}完整转换器代码:publicclassEnumC