WPF学习笔记(二):初学者避坑实录
使用 KeyBinding 实现文本框回车提交
文本框的回车提交是一个很常见的需求:在一个复杂的筛选页面上,用户希望在输入框输入文字后直接回车即可触发查询,而不是非得点击一下搜索按钮。假设需要在用户输入回车时触发 TestCommand 命令,则对应的实现代码如下:
<TextBox><TextBox.InputBindings><KeyBinding Command="{Binding TestCommand}" Key="Return"></KeyBinding></TextBox.InputBindings>
</TextBox>
属性优先级问题导致的 DataTrigger 不生效
这是一个新手特别容易犯的一个错误。
在下面的代码中我希望实现的效果是:一个文本框,如果用户未输入任何内容则展示边框,一旦用户有输入,则将边框隐藏。
<TextBox BorderThickness="0" x:Name="TestTextBox"><TextBox.Style><Style TargetType="TextBox"><Style.Triggers><DataTrigger Binding="{Binding Text.Length,ElementName=TestTextBox}" Value="0"><Setter Property="BorderThickness" Value="1" /></DataTrigger></Style.Triggers>
</Style></TextBox.Style>
</TextBox>
但程序运行后结果并不符合预期:边框一直没有出现。
这个问题的出现是因为 BorderThickness 被直接定义在了有更高优先级的 TextBox 标签上,该操作覆盖了 DataTrigger 的行为。
问题的解决方式也很简单:将 BorderThickness 的设置移入 Style 标签即可。
<TextBox x:Name="TestTextBox"><TextBox.Style><Style TargetType="TextBox"><Setter Property="BorderThickness" Value="0" /><Style.Triggers><DataTrigger Binding="{Binding Text.Length,ElementName=TestTextBox}" Value="0"><Setter Property="BorderThickness" Value="1" /></DataTrigger></Style.Triggers>
</Style></TextBox.Style>
</TextBox>
图片源为空时展示默认图片
列表中展示缩略图也是很常见的需求。在信息管理系统中,不能保证所有信息都包含缩略图。在没有包含特定缩略图时,需要展示默认缩略图。
<Image><Image.Source><Binding Path="ImageUri" ><Binding.TargetNullValue><ImageSource>/Assets/PlaceHolder.png</ImageSource></Binding.TargetNullValue></Binding></Image.Source>
</Image>
WPF学习笔记(二):初学者避坑实录相关推荐
- wpf学习笔记二 深入学习 xaml
1.XAML 主要用于绘制UI界面,最大的优点是能使UI与运行逻辑分离开来,使得整个程序回到逻辑处理上来. 每一个标签对应.NET Framework类库的一个控件类.通过设置标签的Attribute ...
- [WPF]学习笔记二---主窗体
昨晚上简单的化了下界面.现在还比较简陋. 单击事件的参用的有问题, 使用了页面引用. XAML <Windowxmlns="http://schemas.microsoft.com/w ...
- 深度强化学习笔记(二)——Q-learning学习与二维寻路demo实现
深度强化学习笔记(二)--Q-learning学习与二维寻路demo实现 文章目录 深度强化学习笔记(二)--Q-learning学习与二维寻路demo实现 前言 理论 什么是Q-Learning 算 ...
- wxpython应用程序对象与顶级窗口_wxPython学习笔记(二)
如何创建和使用一个应用程序对象? 任何wxPython应用程序都需要一个应用程序对象.这个应用程序对象必须是类wx.App或其定制的子类的一个实例.应用程序对象的主要目的是管理幕后的主事件循环. 父类 ...
- qml学习笔记(二):可视化元素基类Item详解(上半场anchors等等)
原博主博客地址:http://blog.csdn.net/qq21497936 本文章博客地址:http://blog.csdn.net/qq21497936/article/details/7851 ...
- [转载]dorado学习笔记(二)
原文地址:dorado学习笔记(二)作者:傻掛 ·isFirst, isLast在什么情况下使用?在遍历dataset的时候会用到 ·dorado执行的顺序,首先由jsp发送请求,调用相关的ViewM ...
- PyTorch学习笔记(二)——回归
PyTorch学习笔记(二)--回归 本文主要是用PyTorch来实现一个简单的回归任务. 编辑器:spyder 1.引入相应的包及生成伪数据 import torch import torch.nn ...
- tensorflow学习笔记二——建立一个简单的神经网络拟合二次函数
tensorflow学习笔记二--建立一个简单的神经网络 2016-09-23 16:04 2973人阅读 评论(2) 收藏 举报 分类: tensorflow(4) 目录(?)[+] 本笔记目的 ...
- Scapy学习笔记二
Scapy学习笔记二 Scapy Sniffer的用法: http://blog.csdn.net/qwertyupoiuytr/article/details/54670489 Scapy Snif ...
最新文章
- 程序员拯救乐坛?OpenAI用“逆天”GPT2.0搞了个AI音乐生成器
- 成都地震了[原创]不断更新
- java 空格乱码_java 中文乱码以及空格乱码解决方案总结
- boost::log::expressions::has_attr用法的测试程序
- TPU和GPU跑模型时间统计(持续更新中)以及TPU Research Cloud的申请
- MongoDB最简单的入门教程之一 环境搭建
- 如何设计通用的回调机制
- windows下mysql+apache+php配置
- 2021如何运行带flash的html,2021年Flash被禁用后继续使用的方法
- 2022百度之星第一场初赛
- esp8266教程:网络基础知识
- 可以拍c语言答案的软件下载,c语言二级考试题库app下载-C语言二级考试题库 安卓版v2.3-PC6安卓网...
- java 无法显示打印页面_使用打印机打印网页时出现的脚本错误的办法
- 测试显示器分辨率和尺寸
- java 调用felix_使用eclipse开发felix的OSGI插件
- 第一部分——交错(拉丝)(Interlace)的产生
- Typora基本使用Markdown基本语法:精炼且详细
- PHP基本语法--php基础最详细教程
- 2023最新SSM计算机毕业设计选题大全(附源码+LW)之java体育运动兴趣社区系统8bisy
- Swift - 使用原生库进行 JSON 解析和生成
热门文章
- SQL Server 2008如何导出带数据的脚本文件
- 帆软报表(finereport)使用Event 事件对象 (target)修改提示框样式
- [HDU517] 小奇的集合
- k64 datasheet学习笔记12---System Integration Module (SIM)
- 大型网站技术架构:核心原理与案例分析笔记
- ABAP的自学之路 ,初步认识ABAP 一
- Android系统的体系结构、开发语言及源码结构
- Teams Bot开发系列:Activity和Turn
- php 执行文件tar打包,利用tar for windows对大量文件进行快速打包
- matlab胡良剑第五章,MATLAB习题参考答案(胡良剑,孙晓君)