如何取消初始化 FrameworkElement?

2024-02-28

我们有一个派生自 FrameworkElement 的类,它不受我们的控制。 此类在中注册事件处理程序初始化时 http://msdn.microsoft.com/en-us/library/system.windows.frameworkelement.oninitialized%28v=vs.110%29.aspx方法。

由于 FrameworkElement 没有提供 OnInitialize 的对应项,因此正确清理此类的模式是什么?

它保持根状态,因为它的任何部分都不会删除导致泄漏的 EventHandler。


不存在“取消初始化”这样的事情。当无法在构造函数中完全初始化对象时,将使用初始化方法,因为它依赖于构造期间不可用的数据。在这些情况下,构造分为两个阶段:第一步在无参数构造函数中执行,第二步在初始化方法中执行,例如OnInitialize,外部数据可用后

您所描述的是对象处置,这是通过调用对象的Dispose方法。一个编写良好的类应该清理其数据,释放任何外部资源and释放所有事件处理程序。

视觉元素的生命周期通常还有另一个步骤,由 OnLoad/OnUnload 方法处理。当元素实际放置在 XAML 视图中并连接到其他 UI 元素时,将发生加载步骤。事件处理程序应在 OnLoad 方法中注册并在 OnUnload 方法中删除。

如果该元素没有Dispose方法,您也许可以引发 Unload 事件来强制清理,尽管这有点像黑客:

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

如何取消初始化 FrameworkElement? 的相关文章

  • 无法使用c#更改视频捕获分辨率

    我正在尝试使用 C 中的 DirectShowNet 更改默认网络摄像头分辨率 据我所知 我需要通过调用 windows win32 api dll 中内置的 VideoInfoHeader 类来更改它以进行 avi 捕获 我有来自 Dir
  • strtok() 使用安全吗[重复]

    这个问题在这里已经有答案了 我读到了很多负面的东西strtok 有人说它已经过时 有人说它不是线程安全的 等等 那么真相是什么 我可以使用吗strtok 它是线程安全的吗 Note 我正在使用 Visual C 您可以使用它 它是标准库的一
  • C# 异步任务比同步慢

    你知道为什么同步斐波那契方法比异步 等待更快并且比异步任务更快吗 我在每个项目方法上都使用了异步 所以主要是这是一个非常糟糕的方法 Code static int FibonacciSync int number if number 0 r
  • 如何使用c#从数据桶中获取所有文档?

    如何获取数据桶中的所有文档 我尝试过一个示例 但我只能获得一个特定的文档 这是我的代码 CouchbaseClient oclient oclient new CouchbaseClient vwspace data bucket name
  • 如何从不同的线程访问控件?

    如何从创建控件的线程以外的线程访问控件 避免跨线程错误 这是我的示例代码 private void Form1 Load object sender EventArgs e Thread t new Thread foo t Start p
  • 选择initializer_list迭代器定义

    Why std initializer list
  • 为什么像 BindingList 或 ObservableCollection 这样的类不是线程安全的?

    我一次又一次发现自己必须编写 BindingList 和 ObservableCollection 的线程安全版本 因为当绑定到 UI 时 这些控件无法从多个线程更改 我想理解的是why情况就是这样 这是设计错误还是故意的 问题是设计一个线
  • 如何调试.NET Windows Service OnStart方法?

    我用 NET 编写的代码仅在作为 Windows 服务安装时才会失败 该故障甚至不允许服务启动 我不知道如何进入 OnStart 方法 如何 调试 Windows 服务应用程序 http msdn microsoft com en us l
  • std::make_pair 与浮点数组(float2,无符号整数)

    我有一个用 float2 unsigned int 对模板化的向量 例如 std vector
  • 列表到优先队列

    我有一个 C 大学编程项目 分为两个部分 在开始第二部分时应该使用priority queues hash tables and BST s 我 至少 在优先级队列方面遇到了麻烦 因为它迫使我自己重做第一部分中已经实现的许多代码 该项目是关
  • 节点*链表中的下一个

    我是数据结构和算法的新手 我遇到了以下代码 typedef struct node int data node next 谁能告诉我为什么我们要声明节点 next next 不能声明为 int next 吗 因为你希望能够做到n gt ne
  • 使用 OleDbCommand / OleDbDataAdapter 读取 CSV 文件

    我不明白为什么 但是当我使用 OleDbDataAdapter 或 OleDbCommand 读取 CSV 文件时 在这两种情况下 生成的数据结构良好 它识别文件头中的列 但行数据都是空字符串 我之前已经成功进行过多次 CSV 处理 因此我
  • 应在堆栈上分配的最大数量

    我一直在寻找堆栈溢出有关应在堆栈上分配的最大内存量的指南 我看到了堆栈与堆分配的最佳实践 但没有关于应该在堆栈上分配多少以及应该在堆上分配多少的指南 有什么想法 数字可以作为指导吗 什么时候应该在堆栈上分配 什么时候应该在堆上分配 多少才算
  • 从具有相同属性的另一个对象创建对象

    我有一个 C 对象 可以说有 20 个属性 它是数据契约的一部分 我还有另一个具有类似属性的业务实体 我想从响应对象中填充该实体 除了将一个对象的每个属性分配给另一个对象的相应属性之外 还有其他方法可以做到这一点吗 是的 看看自动映射器 h
  • 在 C# 命令行应用程序中包含并执行 EXE

    所以我找到了一个很棒的小 EXE 命令行应用程序 我们将其称为 program exe 它输出一些我想用 C 操作的数据 我想知道是否有一种方法可以将program exe 打包 到我的Visual Studio项目文件中 这样我就可以将编
  • 使用任务的经典永无止境的线程循环?

    给出了一个非常常见的线程场景 宣言 private Thread thread private bool isRunning false Start thread new Thread gt NeverEndingProc thread S
  • 使用C标准数学库精确计算标准正态分布的CDF

    标准 C 数学库不提供计算标准正态分布 CDF 的函数 normcdf 然而 它确实提供了密切相关的函数 误差函数 erf 和互补误差函数 erfc 计算 CDF 的最快方法通常是通过误差函数 使用预定义常量 M SQRT1 2 来表示 d
  • C# PasswordDeriveBytes:似乎 Salt 并不重要

    可能我误解了什么 以下代码通过 CryptDeriveKey 使用两种不同的盐生成两个相等的密钥 这是控制台结果 盐1 21 3e 18 a3 9a 8b 5f gt 键 da 89 ea 3d 91 08 20 98 20 e9 dc 4
  • 检查一个数是否是完全平方数?

    我认为以下代码存在精度问题 bool isPerfectSquare long long n long long squareRootN long long sqrt n 0 5 return squareRootN squareRootN
  • 如何根据当前日期时间发现财政年度?

    我需要基于当前或今天的日期时间的财政年度 假设我们认为今天的日期是10 April 2011 那么我需要输出为Financial Year 2012在某些情况下 我需要以短格式显示相同的输出FY12 我想以两种方式显示 在我们的要求中 考虑

随机推荐

  • 对 DStream 进行类型参数化

    Can a DStream have type parameters 如果是 怎么办 当我尝试时lazy val qwe mStream mapWithState stateSpec on myDStream DStream A B 类参数
  • 如何确定在 Heroku Performance dyno 上运行的 Puma 工作线程和线程的正确数量?

    我已经阅读了 Heroku 上可以找到的所有关于 Puma 和 dyno 类型的文章 但我无法得到直接的答案 我看到有人提到 Puma 工作线程的数量应该由核心数量决定 我找不到 Heroku 透露 Performance M 或 Perf
  • 可以 $.post 并获取文件下载对话框

    我正在使用 jquery 的 post 并且想知道我是否可以使用它来获取 FileResult 返回 还没有取得任何成功吗 内容在回调中返回 但不是作为文件下载 谢谢 罗德查尔 这不可能 相反 您可以定期提交
  • OCR:图像转文本?

    在标记为复制或重复问题之前 请先阅读整个问题 我目前能做的如下 获取图像并裁剪 OCR 所需的部分 使用处理图像tesseract and leptonica 当应用的文档被裁剪成块 即每个图像 1 个字符 时 它提供 96 的准确度 如果
  • java.rmi.ServerException:服务器线程中发生RemoteException(ClassNotFoundException)

    方法如下 private void startServer snippet that starts the server on the local machine try RemoteMethodImpl impl new RemoteMe
  • 使用 Powershell 设置远程服务的恢复选项?

    我真的很难让它发挥作用 希望有人可以帮助我 我目前正在为一项服务编写 Powershell 部署脚本 安装服务后 我想将服务恢复选项设置为每次服务在 0 分钟后崩溃时 重新启动服务 有谁知道如何使用 Powershell 为远程计算机设置这
  • Visual Studio Cordova - 无法部署应用程序

    我正在使用带有 Cordova 工具的 Visual Studio Enterprise 2015 我有简单的引导 HTML5 应用程序和运行 Remotebuild 代理的 iMac 我有一台 iPad 通过 VS 连接到我的 Windo
  • Python线程问题,raw_input()阻塞线程,线程失控

    我在 python 中遇到线程问题 问题似乎是当我调用一个线程并随后调用 raw input 时会阻塞该线程 这是最小的例子 import threading import time class tread test threading T
  • React-Native:如何缩放字体大小以支持 Android 和 iOS 中的多种不同分辨率和屏幕?

    我在尝试在存在的许多不同屏幕上计算正确的字体大小时遇到 了很大的麻烦 目前我有一个名为的辅助函数getCorrectFontSizeForScreen export function getCorrectFontSizeForScreen
  • 如何用 Jackson 比较两个 JsonNode?

    我有一个比较两个对象的方法 但我不知道如何通过 Jackson 库比较 JsonNode 我想要得到类似的东西 private boolean test JsonNode source JsonNode test compiler proc
  • 如何在 JsonPath 中过滤非数组

    使用以下 JSON 来自http jsonpath com http jsonpath com firstName John lastName doe age 26 address streetAddress naist street ci
  • 如何使用常规 Windows 命令行增加文本文件中的值?

    我想为我的一个项目保留一个 编译计数器 我认为一种快速而肮脏的方法是保留一个带有普通数字的文本文件 然后只需调用一个小脚本在每次编译时递增该数字 我该如何使用常规 Windows 命令行来执行此操作 我真的不想安装一些额外的 shell 来
  • ListBox 和 ListView 有什么区别

    WPF的ListBox和ListView有什么区别 我找不到它们的属性有任何显着差异 有不同的典型用途吗 A ListView基本上就像一个ListBox 并继承自它 但它还有一个View财产 此属性允许您指定显示项目的预定义方式 BCL
  • 本地 Postgres 的 Npgsql 连接字符串

    下午好 我在连接到 Postgres 数据库时遇到问题 我正在开发的应用程序必须在 NET 4 上运行 我正在使用 Npgsql 因为我仅限于 NET 4 所以我使用 Npgsql 版本 2 2 7 我相信 3 需要 NET 4 5 该应用
  • CSS 网格内垂直对齐

    我想要一个巨大的进度条 它在 CSS 网格内垂直对齐 问题是 CSS 网格内的垂直对齐对我不起作用 我尝试过 Firefox 也尝试过 Chrome I tried vertical align middle 但它不起作用 我已经在网格项中
  • PHP 的 json_encode 是否保证生成 ASCII 字符串?

    嗯 主题说明了一切 我正在使用 json encode 将一些 UTF8 数据转换为 JSON 并且我需要将其传输到当前仅支持 ASCII 的某个层 所以我想知道是否需要使其支持 UTF 8 还是可以保持原样 查看 JSON rfc UTF
  • 如何在不使用相机应用程序的情况下捕获背景图像

    我有一个 Android 应用程序 其中包含一个按钮 当您单击按钮时 应从相机捕获图像 而无需打开相机应用程序 图像应在后台捕获 如何实现这个功能呢 这是我的整个工作项目 如何在没有 SurfaceView 的情况下捕获背景图像 您可以在任
  • 取消引用指向数组的指针?

    参考带有注释的行 为什么在示例中添加括号可以打印数组的所有内容 该示例打印 one 然后打印垃圾 include
  • 如何在 Django 中添加对评论的回复?

    我正在用 Django 制作自己的博客 并且我已经制作了一个评论系统 我想为每个评论添加回复 就像普通的评论框 但我不知道该怎么做 这是我当前的 models py评论 class Comment models Model post mod
  • 如何取消初始化 FrameworkElement?

    我们有一个派生自 FrameworkElement 的类 它不受我们的控制 此类在中注册事件处理程序初始化时 http msdn microsoft com en us library system windows frameworkele