首页 > 其他分享 >WPF自定义控件,如何使得xaml涉及器中的修改能立即反应到预览

WPF自定义控件,如何使得xaml涉及器中的修改能立即反应到预览

时间:2024-04-20 19:33:06浏览次数:33  
标签:控件 自定义 xaml 器中 FindVisualAncestor 重绘

这是我无意中发现的,xaml中设置的是依赖属性而不是包装器,所以我们可以直接在注册依赖属性那里设置回调,触发某个控件重绘,比如本身或父控件重绘。

xaml设计器就会实时更新

1 // !!!由于xaml解析是直接通过这里进行的,不通过包装器,所以通过设置这里的回调,可以使得在编辑xaml自定义依赖属性时可以立即看到变化
2 public static readonly DependencyProperty OffsetProperty =
3     DependencyProperty.Register("Offset", typeof(double), typeof(ZAxis), new PropertyMetadata(0d, (owner,e) =>
4     {
5         //这里调用InvalidateVisual触发重绘,FindVisualAncestor是我自定义寻找父控件用的
6         MeasureTool.FindVisualAncestor<ZChart>(owner)?.InvalidateVisual();
7     }));

 

标签:控件,自定义,xaml,器中,FindVisualAncestor,重绘
From: https://www.cnblogs.com/ggtc/p/18148039

相关文章

  • fastadmin 使用PhpOffice 自定义导出
    1、现在需要导出的index.html里添加导出按钮<ahref="javascript:;"class="btnbtn-infobtn-export{:$auth->check('transportation/transport/export')?'':'hide'}"title="{:__('导出')}"><iclass=......
  • 如何快速启动KVM虚拟机并用自定义用户登录
    以ubuntu虚拟机为例,很多时候创建了KVM虚拟机之后,想ssh登录进去做一些操作,但是却不知道用户名和密码,最早的时候ubuntu的cloudimage内置了一个cirros的用户名,密码也是cirros,现在好像没有这个用户了,所以想ssh虚拟机的话,可以借助cloudinit来在启动时创建一个指定的用户。以下以u......
  • c# 中 dataGridView控件 显示水平滚动条
    1.最主要的在dataGridView控件属性中的ScrollBars是否设为BothBoth代表水平和垂直方向根据实际需求自动显示滚动条None代表水平和垂直都不显示滚动条Vertical代表只垂直显示滚动条Horizontal代表只水平显示滚动条2.检查表格中每个列的属性,看Frozen应设置为false 如果......
  • vscode自定义log快捷生成代码
    1、进入设置页面:文件>首选项>用户代码片段>选择设置的语言。2、自定义打印:3、关于代码段显示位置的调整设置文件>首选项>设置,搜索代码段或snippetSuggestions,修改为”top”;4、页面中使用:输入log看效果 ......
  • el-table实现自定义排序事件
    说明在项目开发中,需求有时会需要通过调取接口去实现表格数据排序。实现要点在el-table-column中定义sortable="custom"属性在el-table中定义@sort-change="自定义排序事件"代码...<el-table:data="list"@sort-change="handleSort"ref="tableRef">......
  • 发挥自定义表单开发优势,实现降本增效!
    在数字化发展趋势下,流程化办公深入职场人心,因为它能助力企业降本、增效、提产。那么,如何实现流程化办公?如何让企业高效步入数字化转型新时代?这就需要发扬低代码技术平台、自定义表单开发的优势特点,用快速、高效、灵活的开发平台为企业实现高效率发展。想要了解自定义表单开发的相......
  • EAS_DEP添加动态控件,在代码中获取DEP扩展控件
    1.在编辑界面onload的方法前置事件添加脚本//把动态控件传递到代码中varcomponents=newjava.util.HashMap();components.put("prmtassureAmountAccount",pluginCtx.getKDBizPromptBox("prmtassureAmountAccount"));components.put("prmtassureInterestAccount",......
  • TreeComboBox 【用户控件】
    效果如下纯粹用用户控件实现缺点:1、展开子项时候,文本框会初始化为第一项,不过在选择后就会设置成选中的选择的项。          2、只有在文本框可编辑状态下,才可以正常运行。          3、设置复杂,不太容易使用。   步骤1、设置Combobox。TreeComb......
  • Vue3 + vite 项目自定义一个svg-icon组件
    1.安装vite-plugin-svg-icons插件npmivite-plugin-svg-icons-D2.vite.config.ts中配置importpathfrom"path";import{createSvgIconsPlugin}from"vite-plugin-svg-icons";exportdefaultdefineConfig({plugins:[......createS......
  • 自定义 AuthorizationMiddleware 的行为
    在其它角色、策略权限验证后,系统再执行中间件,中间件成功后,最后才执行调用控制器方法。其它策略-》授权中间件-》控制器方法应用可以注册 IAuthorizationMiddlewareResultHandler,以自定义 AuthorizationMiddleware 处理授权结果的方式。应用可将 IAuthorizationMiddlewareRe......