Tag: .net

WPF On Start检测进程是否已启动并将应用程序置于最前面

我有一个非常简单的问题。 程序启动后,用户尝试启动另一个实例。 新实例需要将旧实例放在前面并退出。 解决方案非常简单,我可以从http://www.codeproject.com/KB/cs/oneprocessonly.aspx获取代码并完成它。 幸运/不幸的是我正在使用WPF。 这意味着,我无法控制Main()方法的内容。 我找到了解决这个问题的方法“如何在我的WPF应用程序中提供自己的Main()方法?” @ http://learnwpf.com/Posts/Post.aspx?postId=a5643949-ab80-47f9-93c8-f5e8e5782d34 。 但是,当没有App.xaml文件时,这个解决方案会带来像Expression Blend stats这样的另一个问题。 我可以使用App类OnStarted事件,但我正在使用WPF的启动画面资源,这意味着将显示额外的启动画面。 我对这种方法的最后一个担忧是接缝不能“面向未来”给我:(。 这个问题有没有WPF风格的解决方案? 先感谢您。

无效

我的Web.config包含以下内容: 我不想显示默认的ASP.NET错误页面,所以我清除了我的响应: protected void Application_EndRequest(object sender, EventArgs e) { if (Response.StatusCode >= 400) { Response.Clear(); } } 这将停止显示默认的ASP.NET错误页面。 不幸的是,我的自定义错误页面也没有出现。 即使我的响应为空, PassThrough也不会执行我的自定义错误页面路径(没有命中断点)。 如果我使用existingResponse=”Replace” ,一切正常,但为什么它不适用于PassThrough ?

将图像保存到WPF应用程序中的文件保持宽高比

嗨,我试图用透明背景缩放png图像。 我需要它是250×250像素。 水平和垂直居中并保持正确的纵横比。 设定保证金的可能性。 这是我到目前为止所得到的。 var img = new System.Windows.Controls.Image(); var bi = new BitmapImage(new Uri(“C://tmp/original.png”, UriKind.RelativeOrAbsolute)); img.Stretch = Stretch.Uniform; img.Width = 250; img.Height = 250; img.Source = bi; var pngBitmapEncoder = new PngBitmapEncoder(); var stream = new FileStream(“C://tmp/test3.png”, FileMode.Create); pngBitmapEncoder.Frames.Add(BitmapFrame.Create(img)); pngBitmapEncoder.Save(stream); stream.Close(); 我知道它还没有使用Image对象,因此只保存图像而不缩放它。 但是我在保存Image对象时遇到了问题。 它给出了一个无法从’System.Windows.Controls.Image’转换为’System.Uri’的编译错误 希望可以有人帮帮我 :-) 编辑 将代码更新为具有编译错误的版本。 刚改变了 pngBitmapEncoder.Frames.Add(BitmapFrame.Create(bi)); 至 pngBitmapEncoder.Frames.Add(BitmapFrame.Create(img)); 这是我使用的列表 […]

使用数据绑定处理样式

重写 我有一个接收文件的应用程序。 此文件包含大量可编辑内容。 此内容有多种可能的类型(即布尔复选框,文本框等)。 问题是,这些值可以是单独的,也可以是一个组(最多8个),因此它们可以是数组。 我们将这些值绑定到ListView ,并使用DataTemplates显示它们。 实际上,我从数组列表中创建了ListView 。 这些数组中的项需要是数据绑定和正确设置样式(例如,布尔数组需要创建复选框,而字符串数组需要文本框)。 每个创建的元素都需要放入ListView的列中。 当前样式使用DataTemplates与数据绑定,即 对输入数组中的每个值重复此操作,因此您有Value[1] , Value[2]等。 这意味着重复几乎相同的代码8次,然后对下一种类型执行相同的操作。 由于存在大量输入类型,这意味着重复代码的数量是荒谬的。 我的问题是: 有没有更好的方法来做到这一点,所以我们不必重复数据模板,同时继续使用列? 顺便说一句,我使用的是.NET 3.5。 行如何显示的示例。 每个元素都在自己的列中。 combobox是从arrays构建的。 编辑示例DataTemplate: 示例图: 我有一个ViewModel。 此ViewModel具有List,由ItemData组成。 ItemDataData有一个名为Values的数组。 List已绑定到View。 我们需要根据我们访问的ItemData的属性选择要使用的DataTemplate: 一个名字 选项arrray中的一个或多个。 目前,我们在ListView中显示List。 生成ListView ,列具有附加到其CellTemplate的不同DataTemplates ,每个索引一个,总共8个DataTemplates。

DisposableAction和Marshal.ReleaseComObject

做一些办公室Interop,代码是Type try { selection = getSelected(Return.Some.Office.InteropObject); for ( int i = 0 ; i < selection.count ; i++) yield return selection.item(i) } finally { Marshal.ReleaseComObject(selection); } 想知道用DisposableAction替换它是否是个好主意并改为 using ( var a = new DisposableAction(getSelected(Return.Some.Office.InteropObject)) ) { foreach(var b in a.Items) yield return b; }

等于int和short c#返回false

考虑以下代码: static int x2 = 10; public static void Main() { short y = 10; Console.WriteLine(y.Equals(x2)); //False Console.Read(); } 为什么y.Equals(x2)返回false ?

0x00007FFCF05E675B处的未处理exception(Windows.UI.Xaml.dll)

我已经开发了一个UWP应用程序 ,我已经设法在商店中构建和发布包,没有任何问题。 由于一些用户遇到性能问题,我想通过使用“ .Net Native tool chain ”编译代码来测试我的上一次更改。 但是在构建结束之前我得到了一个exception: 如果我取消选中“ 使用.NET Native工具链编译 ”的情况,则不再存在问题。 其他构建参数是“ Release ”和“ x64 ”。 你有什么想法吗? 我创建包裹时为什么不遇到此exception? [编辑] 2017-02-13:什么是新的 我有一些关于这个问题的消息。 首先,Store版本有一个新的“bug”,当通过OnNavigatedFrom()离开页面时似乎会出现这个问题: protected override void OnNavigatedFrom(NavigationEventArgs e) { ViewModel = this.DataContext as DetailsViewModel; if (!ViewModel.ToChildNavigate) { // Dispose resources this.Resources.Clear(); this.Loaded -= DetailsPage_Loaded; ViewModel = null; } base.OnNavigatedFrom(e); } 在调试模式下,此代码非常有效… 我还说过,我实际上可以使用“ .Net Native […]

如何处理TransactionInDoubtException

我有一些简单的SELECT语句和一个包含在using(TransactionScope…)块中的INSERT 。 更新:隔离级别为ReadCommited 我在调用scope.Complete()遇到以下exception。(见下文) 同时数据库完全由另一个应用程序引起高负载。 事实上我发现INSERT语句确实执行了。 我的问题是:如何以一种使数据库保持一致状态的方式处理此exception? 我正在寻找一个总是完成或未完成但从未完成一半的交易。 exception堆栈跟踪: System.Transactions.TransactionInDoubtException: The transaction is in doubt. —> System.Data.SqlClient.SqlException: Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding. at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) at System.Data.SqlClient.TdsParserStateObject.ReadSniError(TdsParserStateObject stateObj, UInt32 error) at System.Data.SqlClient.TdsParserStateObject.ReadSni(DbAsyncResult asyncResult, TdsParserStateObject stateObj) at System.Data.SqlClient.TdsParserStateObject.ReadNetworkPacket() […]

C#/ .NET – 使用最小并行化的Quicksort降低性能

我目前正在为List类进行递归并行Quicksort扩展函数。 下面的代码代表了我考虑过的最基本的线程分发标准,因为它应该是概念上最简单的解释。 它分支到检测到的处理器数量的基数2的对数深度,并从那里顺序进行。 因此,每个CPU应该获得一个具有(大致)相等,大量数据的线程来处理,避免过多的开销时间。 提供基本顺序算法用于比较。 public static class Quicksort { /// /// Helper class to hold information about when to parallelize /// /// Maximum number of supported threads /// The depth to which new threads should /// automatically be made private class ThreadInfo { internal int maxThreads; internal int threadDepth; public ThreadInfo(int length) { maxThreads […]

Silverlight Assembly.Load()仅适用于完整/强名称

显然,Silverlight中的Assembly.Load()实现需要一个完整/强名称。 例如,这工作: Assembly.Load(“MyAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=…”); 虽然MyAssembly已经加载,但这将失败: Assembly.Load(“MyAssembly”); 有没有解决方法,以便可以使用简单的名称?