首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

WPF自学入门(八)WPF窗体之间的交互

今天我们一起来看一下WPF窗体之间的交互-窗体之间的传值。有两个窗体,一个是父窗体,一个是子窗体。要将父窗体的文本框中的值传递给子窗体中的控件。我们该怎么实现?...再将Message中存放的输入框的文字传递给子窗体中定义的可读可写的公用字符串getMessage。下面看一下实现的后台代码: 父窗体的后台代码: ? 子窗体的后台代码: ?...因为本人还刚接触到一个WPF项目,没有想过的场景。...首先,自定义一个公共类MessageHelp,用来封装委托类型的。...首先声明了子窗体,然后child.CallBackMethod设置为自己的函数Method,当然这个Method和委托的参数是一致的,然后就在这里响应委托给过来的参数,处理。

2.5K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    WPF 借助 FuncValueConverter 实现可显示自定义文本的通用枚举项选择弹窗

    using System.Windows.Data; namespace WPFTemplateLib.WpfConverters.Core { /// /// Func 委托...(带一个参数和一个返回值)值转换器类型。...以下动图展示了绑定了同一个枚举类型的两个枚举项选择弹窗,一个弹窗中显示的是枚举的描述,另一个弹窗中显示的是枚举的自定义显示文本: 枚举定义如下: 自定义文本如下: 调用方式,可以看到,两个弹窗创建时都需要一个枚举列表参数和一个当前选中项参数...,显示自定义文本的弹窗比显示枚举描述的弹窗多传一个自定义文本参数: 三、显示枚举描述的选择枚举弹窗 先来看看 .cs 代码: 也很简单,就是一个窗口类,然后有三个绑定属性(使用 Fody 简化,并在前端将...时通过属性传递参数,它们都只能定死地传,不能动态地传,换句话说就是不能使用绑定,前者是因为不能绑定,后者是因为在其中创建不了依赖属性。

    6310

    C#编程中掌握委托(将方法作为参数传递)

    在 C# 中,通常使用委托或 lambda 表达式将方法作为参数传递。 将方法作为参数传递 |使用 C# 编程掌握委托 委托是引用具有特定签名的方法的类型,允许您将方法作为参数传递给其他方法。...实现动态行为的一个强大功能是将方法作为参数传递给其他方法的能力。这就是代表发挥作用的地方。通过利用委托,您可以创建不仅适应不同情况,而且保持简洁的代码。...将方法作为参数传递 |使用 C# 编程掌握委托 将方法分配给委托人: 将方法作为参数传递 |使用 C# 编程掌握委托 3. 将委托作为参数传递 您可以将委托作为参数传递给其他方法,以动态定义行为。...在 C# 中使用委托将方法作为参数传递是创建灵活且可重用代码的强大功能。您可以使用委托、lambda 表达式和内置类型(如 和 )动态分配、传递和调用方法。...FuncAction 掌握 C# 中的委托为编写灵活且可维护的代码开辟了一个充满可能性的世界。通过了解如何将方法作为参数传递,您可以轻松创建适应不同要求的动态应用程序。

    11610

    从零开始搭建一个GIS开发小框架(六)——GMap.Net组件WPF版本地块单元基本操作一套

    1 概述 Introduction to new functions 完成一个WPF版本里最常用的一个功能场景:多边形(地块单元)的一套基本操作(我们以后简称煎饼果子来一套功能)。...主程序是我以前做的WPF版本万能框子,绿色是目前已经完成的功能。....Net的委托 4 视频展示 Video http://mpvideo.qpic.cn/0bc37yaayaaamuadiprdvzrvb7wdbt7aadaa.f10002.mp4?...,值类型为GMapPolygon /// /// 多边形Shape对象右键事件 /// /// //...在子窗口完成操作后,通过委托事件回传地块单元的主键key到父窗体的setPolygonAttribute方法,在父窗口里(的GMapControl控件)通过setPolygonAttribute方法绘制多边形和修改多边形属性

    68720

    .NET 设计一套高性能的弱事件机制

    框架自带的 WeakEventManager 功能非常有限,自己继承实现一个的难度非常高,但具有很高的性能;WPF 绑定等机制的底层实现用到了这个类型。...设计原则 支持为任意类型的事件添加弱事件支持,而不只是自己定义新事件的时候可以使用(对标主流 NuGet 包和 StackOverflow 上的回答) 具有很高的性能(对标主流的 NuGet 包和 WPF...各种不同的委托定义虽然可以有相同的参数和返回值类型,但是却不能相互转换,因此我也不能将传入的委托转换成 Action 这样的通用委托。...庆幸的是,C# 提供了将方法组隐式转换委托的方法,可以让两个参数和返回值类型相同的委托隐式转换。但注意,这是隐式转换,没有运行时代码可以高性能地完成这件事情。...因为: 我们已经把最坑的 o.Changed += OnChanged,value,value.Invoke 都传进来了; 在类型中定义一个弱事件,目前网上各种主流弱事件 NuGet 包都有实现。

    23520

    WPF开发-委托(delegate)

    )是一种定义方法签名的类型。...当实例化委托时,您可以将其实例与任何具有兼容签名的方法相关联。 您可以通过委托实例调用方法。 委托用于将方法作为参数传递给其他方法。 事件处理程序就是通过委托调用的方法。...参见文章WPF桌面端开发17-多线程和异步 委托概述 委托具有以下特点: 委托类似于 C++ 函数指针,但它们是类型安全的。 委托允许将方法作为参数进行传递。 委托可用于定义回调方法。...匿名方法和 Lambda 表达式(在某些上下文中)都可编译为委托类型。 这些功能统称为匿名函数。...有关 lambda 表达式的更多信息,请参见 匿名函数) 何时使用委托而不使用接口 委托和接口都允许类设计器分离类型声明和实现。 任何类)或结构)都能继承和实现给定的接口)。

    2K20

    从零开始搭建一个GIS开发小框架(五)——GMap.Net组件WPF版使用体验

    我计划完成一个WPF版本的Demo(绿色是目前已经完成的功能)。主程序是我以前做的WPF版本万能框子,GMap.Net组件是其中一个UserControl。...方法都取消了,导致添加右键菜单和传值很不方便,虽然最后实现右键事件和传值,但是总觉得没有找到正统方法。...polygon.Shape(UIElement类型)传递,polygon.Shape只有一个uid(string类型)属性可以传值,上述示例通过给polygon.Shape.Uid赋值并且给polygon.Tag...赋一样的值,将多边形polygon的唯一标识ukey传递给Polygon_MouseRightButtonDown方法,在方法里通过找polygon.Tag=Uid的方式找到polygon对象,后续就可以进行相应的业务层操作了...,我觉得方法有点笨,但是polygon.Shape没有Tag属性(object类型),没有办法传递一个对象。

    1.2K20

    dotnet C# 使用无捕获的委托可以获得编译器缓存减少对象创建

    本文也叫跟着 Stephen Toub 大佬学性能优化系列,这是我从 Stephen Toub 大佬给 WPF 框架做性能优化学到的知识,通过让委托无捕获来进行性能优化 在 .NET 应用中,咱可以通过委托将某个方法传入到某个模块里面...,最后的一个参数将会自动作为参数传入给委托,也就是代码的 s 变量的值就是 this 的值。...此时的优化在于调用了 AddFoo 方法加入的委托不需要对 this 有任何的引用,因此就可以让 编译器 进行缓存,不需要每次都创建新的委托对象 咱来运行代码对比一下性能,运行代码,在看到 WPF 应用打开时...而如果 this 的变量是通过参数重新传入给委托的,此时可以做到不需要创建新的委托 这就是为什么有一些方法设计了委托传入,同时支持再传入一个 object 对象的原因。...,先创建一个空文件夹,接着使用命令行 cd 命令进入此空文件夹,在命令行里面输入以下代码,即可获取到本文的代码 git init git remote add origin https://gitee.com

    49620

    WPF 开发

    string crentUserAd = windowsIdentity.Name; 输出 crentUserAd 可以看到 设备\\用户 的格式 注册全局事件 如果需要注册一个类型的全局事件...软件引用其他类库启动无反应问题 - 灰色年华 - CSDN博客 非托管使用托管委托 如果有一个 C++ 写的dll,他需要一个函数指针,在C#使用,就可以传入委托。...那么简单的方法是这样写: private static void Func(){} public void C() { c(Func); } 其中c就是C++写的函数,传进去看起来好像正常...传入的不是函数地址,传入的是把函数隐式转换委托,然后转换的委托是局部变量,会被gc,所以在C++拿到的是一个被回收的委托,调用时就会炸。 这里无法用catch,所以用这个会让程序退出。...判断文件是否隐藏 可以设置一些文件是隐藏文件,那么 WPF 如何判断 FileInfo 是隐藏文件?

    1.3K10

    从零开始搭建一个GIS开发小框架(九)——WPF进度条效果

    )类型,大概有5700多个叶子节点,加载这个资源目录树需要一段时间,这里用委托实现页面传值+BackgroundWorker实现异步弹框进度条效果。...我原来在winform里面实现过,但是WPF框架里还没做过,拿这个练练手,为今后的工(qiu)作(zhi)任(mian)务(shi)做好技术储备。 委托是一种引用类型,它是函数指针的托管版本。...1669881228&vid=wxv_2655894180405231616&format_id=10002&support_redirect=0&mmversion=false 3 核心功能代码 Code 委托页面传值是委托的一个最简单应用场景...,大家可以拿来练练手,边做边理解一下委托的概念,我把委托传值用法的大致思路画了一个草稿,见下图,希望对大家理解有帮助。..._loadDataSubWindowDel(re); //委托传值回主界面 } catch (Exception ex) {

    57230

    dotnet OpenXML 使用 MAUI 渲染 PPT 的面积图图表

    ,创建出 AreaChartRender 对象,传递给具体的渲染层。...,其原因是 MAUI 为了更好的适配更多的平台,选用了 float 作为渲染绘制的参数的通用类型。...这一点和 WPF 的不相同,在 WPF 或 UWP 或 WinFroms 等,通用的绘制计算都采用 double 类型。对于渲染绘制,大部分情况,使用 float 也是够用的。...,委托的参数就是 Microsoft.Maui.Graphics.ICanvas 接口,在此委托里面完成实际的绘制逻辑 创建 SkiaPngImageRenderCanvas 需要三个参数,分别是宽度高度的画布尺寸...> action) { // 忽略代码 } 在 Render 方法里,将先创建 Skia 的画布,接着使用 Skia 的画布创建 MAUI 的画布,将 MAUI 的画布传入到委托作为参数

    2.1K30

    .NET周刊【7月第2期 2024-07-14】

    详解C#委托与事件 https://www.cnblogs.com/ayic/p/18295844 在C#中,委托是一种引用类型,用于封装方法的引用,可以作为参数传递,或将多个方法组合。...定义委托时需指定返回类型和参数。创建实例使用new关键字,调用则类似调用普通方法。多播委托可调用多个方法。C# 2.0引入匿名方法,C# 3.0引入Lambda表达式。...事件是基于委托,用于消息发送机制,实现发布者与订阅者的解耦。事件通过委托类型定义,通常通过属性暴露。触发事件使用触发方法,并订阅或取消订阅事件。...Redis Copy .NET8 是一个基于.NET 8的控制台工具,通过修改AppSetting.json文件或使用命令参数来设置源和目标Redis连接。...扩展了参数收集的灵活性 锁定对象 索引运算符改进 \e 转义序列 部分属性 方法组中自然类型的改进 “async”方法和迭代器中的“ref”和“unsafe” 关于扩展类型的更新 扩展类型推迟到 C#

    15710

    C#语法——事件,逐渐边缘化的大哥。

    ,即当我们为事件添加EventHandler委托后,再去触发该事件;被触发的委托将得到object sender和EventArgs e两个参数。...e:代表事件参数,即触发该事件后,事件为被触发的委托,传递了一些参数,以方便委托在处理数据时,更便捷。 根据这个原理,我们可以分析出很多东西。...通过获取sender的类型,我也可以看到,btnClild_Click的sender类型是Button,而btnParent_Click的sernder类型是RadioButton。...比如WPF虽然支持事件驱动,但MVVM在WPF下的表现堪称完美,所以WPF下的事件几乎没有人用了。...C#语法——元组类型 C#语法——泛型的多种应用 C#语法——await与async的正确打开方式 C#语法——委托,架构的血液 C#语法——事件,逐渐边缘化的大哥。 我对C#的认知。

    1.7K30

    读 MAUI 源代码 理解可绑定对象和可绑定属性的存储机制

    这个委托更多的是使用在判断可绑定对象类型,根据可绑定类型对象或者状态,返回不同的默认值。...附加属性可以定义在任意的类型里面,通过附加属性,给某个现有的类型附加上属性。功能上和 WPF 或 UWP 的附加属性功能是相同的。...在 MAUI 里面,通过阅读代码,我认为分开两个方法更多的是为了兼容 WPF 或 UWP 的写法,没有非常本质的差别,参数也差不多,如下面代码 internal static BindableProperty...,当参数值的没有被引用时,也就自然被回收 在 MAUI 里面,可绑定对象基类型的意义就是提供了可绑定属性的机制,存储可绑定属性的方式就是通过 _properties 字典存放。...在 MAUI 里的可绑定属性的默认值创建委托是一个创新,可以写出让不同的可绑定对象使用不同的默认值的功能,也可以写出根据不同的可绑定对象类型返回不同的默认值,通过委托的方式灵活实现复杂的功能

    90120

    通过子类化窗口(SubClass)来为现有的某个窗口添加新的窗口处理程序(或者叫钩子,Hook)

    创建窗口的时候,可以传一个消息处理函数。然而如果窗口不是自己创建的,还能增加消息处理函数吗?答案是可以的,除了 SetWindowsHookEx 来添加钩子之外,更推荐用子类化的方式来添加。...子类化 子类化的本质是通过 SetWindowLong 传入 GWL_WNDPROC 参数。...窗口句柄在不同的 UI 框架拿的方法不同,WPF 是通过 HwndSource 或者 WindowInteropHelper 来拿。...而将委托转换成函数指针则可通过 Marshal.GetFunctionPointerForDelegate 来转换。 你可别吐槽 WPF 另有它法来加消息处理函数啊!...,这样可以避免 GC 回收掉这个委托对象造成崩溃。

    41430

    .NET周刊【1月第3期 2025-01-19】

    .NET Core 委托原理解析 https://www.cnblogs.com/liyongqiang-cc/p/18636233 .NET Core中的委托是类型安全的函数指针,允许将方法作为参数传递或存储...委托定义了方法的签名,确保引用的方法兼容。使用delegate关键字可以定义委托类型,随后可以实例化并调用委托。委托分为单播和多播。单播委托只能引用一个方法,而多播委托可以引用多个方法。...泛型委托允许针对多种数据类型的通用性编程,提升代码的灵活性和重用性。...每个中间件对请求处理后将其传递给下一个,直到最终处理程序。管道的工作流程分为请求和响应两个阶段,利用委托和上下文机制实现。...其次,通过ParameterizedThreadStart创建带参线程,需注意传参类型是object。最后,介绍了使用Lambda表达式创建线程的方式,强调了委托的灵活性。

    6410

    C# 委托 、事件、同步、异步知识点归纳

    C# 委托 、事件、同步、异步知识点归纳 一、委托 基本用法: 1.声明一个委托类型。委托就像是‘类'一样,声明了一种委托之后就可以创建多个具有此种特征的委托。...(特征,指的是返回值、参数类型) public delegate void SomeKindOfDelegate(string result); 2.创建一个在1中创建的委托类型的委托。...从发起者到处理程序之间是可以传参数的。...Action委托类存在不同的变体,可以传递至多16种不同的参数类型,没有泛型参数的Action类可以调用没有参数的方法。...,Func也存在不同的变体,至多可以传递16个参数类型和1个返回类型,例如:Func表示带一个参数的方法,Func<in T1,in T2,out Resout

    1.5K41
    领券