WPF - 宽度和高度必须为非负数

2024-03-20

我的应用程序遇到了一个奇怪的异常。它一直运行良好,直到我升级了我的开发机器(相同的操作系统+ VS2010)并尝试再次调试软件。这是我得到的异常:

宽度和高度必须为非负数。

堆栈跟踪在这里:

 at System.Windows.Size..ctor(Double width, Double height)
   at System.Windows.Window.SourceWindowHelper.GetHwndNonClientAreaSizeInMeasureUnits()
   at System.Windows.Window.GetHwndNonClientAreaSizeInMeasureUnits()
   at System.Windows.Window.MeasureOverrideHelper(Size constraint)
   at System.Windows.Window.MeasureOverride(Size availableSize)
   at System.Windows.FrameworkElement.MeasureCore(Size availableSize)
   at System.Windows.UIElement.Measure(Size availableSize)
   at System.Windows.ContextLayoutManager.UpdateLayout()
   at System.Windows.ContextLayoutManager.UpdateLayoutCallback(Object arg)
   at System.Windows.Media.MediaContext.InvokeOnRenderCallback.DoWork()
   at System.Windows.Media.MediaContext.FireInvokeOnRenderCallbacks()
   at System.Windows.Media.MediaContext.RenderMessageHandlerCore(Object resizedCompositionTarget)
   at System.Windows.Media.MediaContext.RenderMessageHandler(Object resizedCompositionTarget)
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
   at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler)
   at System.Windows.Threading.DispatcherOperation.InvokeImpl()
   at System.Windows.Threading.DispatcherOperation.InvokeInSecurityContext(Object state)
   at System.Threading.ExecutionContext.runTryCode(Object userData)
   at System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode code, CleanupCode backoutCode, Object userData)
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Windows.Threading.DispatcherOperation.Invoke()
   at System.Windows.Threading.Dispatcher.ProcessQueue()
   at System.Windows.Threading.Dispatcher.WndProcHook(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
   at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler)
   at System.Windows.Threading.Dispatcher.InvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Int32 numArgs)
   at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
   at MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG& msg)
   at System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame frame)
   at System.Windows.Threading.Dispatcher.PushFrame(DispatcherFrame frame)
   at System.Windows.Threading.Dispatcher.Run()
   at System.Windows.Application.RunDispatcher(Object ignore)
   at System.Windows.Application.RunInternal(Window window)
   at System.Windows.Application.Run(Window window)
   at System.Windows.Application.Run()
   at AdvancedConsole2._0.App.Main() in F:\Projects\hitech\AdvancedConsole2.0\trunk\AdvancedConsole2.0\AdvancedConsole2.0\obj\x86\Debug\App.g.cs:line 0
   at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
   at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
   at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
   at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.ThreadHelper.ThreadStart()

您需要检查您的宽度和高度。这是一个相当安全的赌注,而不是其中一个或两个都为负。我不会说这是肯定的,但我愿意为此赌很多钱:-)

对于它的价值来说,这may更改显示器分辨率后出现问题。有些人会进行简单的计算,从屏幕尺寸中减去窗口尺寸,然后除以二以使其居中。

如果您的窗口比屏幕大,您可能会得到位置或大小的负值。

如果没有看到计算宽度和高度的代码,这当然都是猜测。我建议发布该内容和/或临时添加代码以某种方式输出它,以便您可以看到发生了什么。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

WPF - 宽度和高度必须为非负数 的相关文章

随机推荐

  • 无法从角 4 快速插入法律归属

    我是 Xcode 和移动应用程序的新手 我正在做一个应用程序来查找当前位置 我在模拟器上测试了它并在控制台中收到了此消息 无法从角 4 插入合法归属 这是什么意思以及如何解决它 import UIKit import Alamofire i
  • 未检测到已安装的组件。元素已经是另一个元素的子元素

    在 App xaml 中 我添加了带有按钮的应用程序资源
  • 如何使用Oracle和.Net客户端实现密码更改功能?

    我正在使用 Oracle 用户来验证 Net 应用程序的用户名和密码 现在我正在研究密码更改功能 数据库具有自定义密码验证 因此如果您尝试更改用户密码并且提供了无效密码 Oracle 将返回多个错误 第一个错误始终是 ORA 28003 指
  • 如何确定我是否过度括号?

    我目前正在尝试避免 C 中的指针算术工作来编写模拟器 通常 如果您添加1对于 C 中的指针 您可以添加所指向对象的大小 但是 我正在尝试使用位和字节 因此这是不希望的 我想知道在这个例子中我是否使用了太多括号 int16 t intptr
  • hadoop namenode端口正在使用

    这实际上是一个备用 HA 名称节点 它的配置与主要和hdfs namenode bootstrapStandby已成功运行 它开始出现在配置文件中定义的标准 HTTP 端口 50070 上
  • 如何使用 List 填充数据表 [重复]

    这个问题在这里已经有答案了 如何将列表转换为数据表 Serializable public class Item public string Name get set public double Price get set public s
  • 如何使用 JAVA API 在 Elasticsearch 版本 8 中创建批量 CRUD 操作请求?

    我们想要创造索引请求 删除请求 更新请求 and 批量请求 in Elasticsearch 版本 8 using JAVA API 但我在elasticsearch v8中没有看到任何java文档官方网站 https www elasti
  • Objective C 相当于 PHP 范围函数?

    我想快速创建一个从 0 到 10000 的数字数组 但步进增量为 500 数组如下所示 0 500 1000 10000 in PHP 这是内置于range http php net manual en function range php
  • 汇总分钟到小时的需求

    我不知道我是否在这个问题的正确部分 我环顾四周并没有找到答案 所以这是我的问题 我有一个 CSV 文件 订购如下 dat lt read csv text Date Demand 01 01 2012 00 00 00 5061 5 01
  • conda.exe:加载共享库时出错:libz.so.1

    无法在我的 RHEL 机器中安装 Anaconda3 2019 10 Linux x86 64 收到错误 gt conda exe 加载共享库时出错 libz so 1 无法从共享对象映射段 不允许操作 Anaconda 或 Minicon
  • 为什么我的排除字段仍然出现在这个 Django 表单中?

    我在用着exclude在我的表单的 Meta 类中 从表单中排除我想以编程方式填写的字段 但它仍然显示在表单中 以下是代码的一些摘录 Model class Info models Model completed by models For
  • 在linux中链接信号处理程序的正确方法?

    我有几个信号处理程序用来干净地退出程序 并且我想通过链接信号处理程序调用来很好地处理任何其他吸引它们的东西 我在手册页中使用 sigaction 作为信号 表示它不再是首选 查看 sigaction 结构体 其中指定了信号掩码等 以及几个标
  • 内部使用 try catch 防止 C++ DLL 异常

    我正在开发一个 C DLL 为主应用程序分配一个数组 该函数返回错误代码 而不是指向新创建的数组的指针 因此第一个成员的地址将写入函数的参数中 例子 int foo int arrayPtr int array new int 10 arr
  • 如何打破长字符串以符合 PEP8 要求? [复制]

    这个问题在这里已经有答案了 我的项目中有很多这样的长线 但不知道如何打破它以使 PEP8 满意 PEP8 显示警告 format me id pic url http graph facebook com 0 picture width 1
  • Visual Studio 需要在 Team City Build Server 上运行 MSTest 测试吗?

    我们正在设置 Team City 构建服务器 在以前的 VS 2008 项目中 完整版本的 Visual Studio 已安装在构建服务器上 我们现在正在启动一个 VS 2010 项目 是否可以在不安装 Visual Studio 的情况下
  • 如何在 Windows 上从 GitHub Desktop 更新 git 版本

    我想用新的worktree中引入的功能git 2 5 https git scm com docs git worktree 但是 我不知道如何更新到最新版本的 GitHub Desktop notgit 本身 我安装桌面版 GitHub
  • JTable 行之间的标题

    我想知道如何实现这样的事情 row 1 row 2 HEADLINE比如 2011 年 1 月 27 日 row 3 row 4 HEADLINE比如 2011 年 1 月 28 日 row 5 这些 假 行应该只是信息行而不是真实行 我找
  • 如何在C#中获取当前产品版本?

    如何在 C 中以编程方式获取当前产品版本 My code VersionNumber System Reflection Assembly GetExecutingAssembly GetName Version ToString 我得到
  • 什么是textview.setTextSize()?

    在我的 Android 游戏中 有一个文本视图 我使用以下代码设置文本大小 textview setTextSize 30 30以像素为单位 但它到底是什么 是字符的高度还是宽度 是序数号吗 在android java或kotlin 中设置
  • WPF - 宽度和高度必须为非负数

    我的应用程序遇到了一个奇怪的异常 它一直运行良好 直到我升级了我的开发机器 相同的操作系统 VS2010 并尝试再次调试软件 这是我得到的异常 宽度和高度必须为非负数 堆栈跟踪在这里 at System Windows Size ctor