文本框显示

文本框正常显示:

文本框超出区域显示:

实现方案

判断文本框是否超出区域

请见《TextBlock IsTextTrimmed 判断文本是否超出》

设置文本布局显示

1. FlowDirection

当文本超出显示区域时,设置FlowDirection靠右显示

下面是封装的附加属性ScrollEndWhenTextTrimmed

 1         /// <summary>
 2         /// 当文本超出显示时,文本是否靠右侧显示
 3         /// </summary>
 4         public static readonly DependencyProperty ScrollEndWhenTextTrimmedProperty = DependencyProperty.RegisterAttached(
 5         "ScrollEndWhenTextTrimmed", typeof(bool), typeof(TextBoxHelper),
 6         new PropertyMetadata(default(bool), OnScrollEndWhenTextTrimmedChanged));
 7
 8         private static void OnScrollEndWhenTextTrimmedChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
 9         {
10             var textBox = (TextBox)d;
11             textBox.TextChanged -= TextBoxOnTextChanged;
12             if ((bool)e.NewValue)
13             {
14                 textBox.FlowDirection = IsTextTrimmed(textBox) ? FlowDirection.RightToLeft : FlowDirection.LeftToRight;
15                 textBox.TextChanged += TextBoxOnTextChanged;
16             }
17             void TextBoxOnTextChanged(object sender, TextChangedEventArgs args)
18             {
19                 textBox.FlowDirection = IsTextTrimmed(textBox) ? FlowDirection.RightToLeft : FlowDirection.LeftToRight;
20             }
21         }
22
23         public static void SetScrollEndWhenTextTrimmed(DependencyObject element, bool value)
24         {
25             element.SetValue(ScrollEndWhenTextTrimmedProperty, value);
26         }
27
28         public static bool GetScrollEndWhenTextTrimmed(DependencyObject element)
29         {
30             return (bool)element.GetValue(ScrollEndWhenTextTrimmedProperty);
31         }

在需要设置文本超出时居右显示的TextBox控件中,添加附加属性ScrollEndWhenTextTrimmed即可。

2.ScrollToEnd

类似方案FlowDirection,文本超出时,通过滚动到文本末尾后,文本靠右显示。

如方案FlowDirection,可以在添加附加属性更改事件中,订阅TextBox的TextChanged。

1     textBox.SelectionStart = textBox.Text.Length;
2     textBox.ScrollToEnd();

But,此方案有缺陷。当TextBox设置IsEnabled=false时,就无法滚动到了。即使如下设置依然无效:

1     textBox.IsEnabled = true;
2     textBox.SelectionStart = textBox.Text.Length;
3     textBox.ScrollToEnd();
4     textBox.IsEnabled = false;

当然,如果文本框不设置IsEnabled时,此方案是可行的。

注:如上方案,本来通过SelectionStart直接绑定TextBox自身的Text.Length就行。然而SelectionStart不是依赖属性,只能直接赋值~

转载于:https://www.cnblogs.com/kybs0/p/9338049.html

WPF TextBox/TextBlock 文本超出显示时,文本靠右显示相关推荐

  1. 安卓超过两行就加省略号_CSS文本超出2行就隐藏并且显示省略号

    超出一行隐藏: overflow:hidden; //超出的文本隐藏 text-overflow:ellipsis; //溢出用省略号显示 white-space:nowrap; //溢出不换行 但是 ...

  2. win7文件夹中的图片使用“XX图标”查看模式显示时,无法正常显示图片缩略图

    win7文件夹中的图片使用"XX图标"查看模式显示时,无法正常显示图片缩略图 系统: win7 详细症状描述: 进入含有图片的文件夹,选择"查看"菜单栏中的&q ...

  3. CSS文本超出2行就隐藏并且显示省略号

    超出一行隐藏: overflow:hidden; //超出的文本隐藏 text-overflow:ellipsis; //溢出用省略号显示 white-space:nowrap; //溢出不换行 但是 ...

  4. css 文本超出2行就隐藏并且显示省略号

    今天做东西,遇到了这个问题,百度后总结得到了这个结果. 首先,要知道css的三条属性. overflow:hidden; //超出的文本隐藏 text-overflow:ellipsis; //溢出用 ...

  5. Java写记事本:文本超出范围时实现滚动条功能

    问题背景 本次Java课程的作业是做一个记事本,能够实现记事本的基本功能,如图所示 问题描述 想要实现内容超出文本框范围时,自动添加垂直滚动条和横向自适应. 添加了JScrollPane scroll ...

  6. android中Textview 和图片同时显示时,文字省略号显示,图片自动靠到右边

    很纠结的一个标题,实在是不知道怎么去描述这个现象. 上图片吧,先看看需求是什么样的. 1.需求: ​ 视频与票的图标跟在标题后面显示,当标题过长时icon显示到省略号-后(textview省略号显示, ...

  7. js实现图片不能显示时使用替换图片显示

    2019独角兽企业重金招聘Python工程师标准>>> 解决方案:使用img标签的onerror属性来处理默认图片,示例如下: <html> <head> & ...

  8. CSS文字超出部分用省略号代替,js鼠标悬停时显示全部文本

    需求: 宽度为百分比,随浏览器变化而变化,当窗口变小到一定程度,文字超出部分用省略号代替,当文字出现省略号,需要鼠标悬停时显示全部文本. 文字超出部分用省略号代替 width:overflow: hi ...

  9. css 超出文字头尾相接滚动_【转载】CSS3 ——文本超出设置 超出显示...与跑马灯效果...

    桌面平台的开发中,内容超出设定区域的大小时,我们常用的操作有三种,一个是显示,一个是隐藏,一个是出现滚动条. 在手机平台的开发中,我们常用的操作也有三种,第一是隐藏,第二是显示"...&qu ...

  10. CSS控制文本超出打点显示

    CSS控制文本超出打点显示 1 单行文本过长打点 2 多行文本打点显示 3 涉及的属性 3.1 white-space 3.2 text-overflow 1 单行文本过长打点 只有1行文本时,需要满 ...

最新文章

  1. JavaScript字符串数组拼接的性能测试及优化方法
  2. 哪个websocket库与Node.js一起使用? [关闭]
  3. 标准化工作导则2020_最新版 GB/T 1.12020 标准化工作导则 第 1 部分:标准化文件的结构和起草规则标准解读...
  4. keras从入门到放弃(十八)批量标准化
  5. pytorch修改tensor数据类型
  6. 设计模式 - 访问者模式
  7. 叫板抖音,运营商入局短视频
  8. 解析库之——beautifulsoup
  9. atitit.错误:找不到或无法加载主类 的解决 v4 qa15.doc
  10. vue数组转对象、JSON数据处理
  11. 软件验收报告文档模版
  12. chrome弱网_弱网测试参考
  13. Lottie动画的优劣及原理
  14. ipv4和ipv6地址长度
  15. 【React】unmountComponentAtNode卸载组件
  16. 一、DC DC电源转换电路设计
  17. 计算机连共享盘被禁止用户,共享文件夹无法访问、设置文件夹访问权限、共享文件夹拒绝访问的解决方法...
  18. PowerDesigner 16逆向工程,MySQL数据库的生成PDM物理数据模型文件
  19. ora-01722 无效数字_错误提示ORA-01722: 无效数字一例
  20. 并发编程后记_什么是后记? 它与我的打印机有什么关系?

热门文章

  1. 文件上传时判断文件夹是否存在
  2. 利用nexus搭建maven库并利用AS上传aar
  3. 无边框对话框拖动改变大小的实现总结
  4. java 中文乱码的解决方法
  5. 虚拟机Windows 2003忘记密码怎么办
  6. 在PS中读取敏感数据
  7. VS C#程序打包覆盖安装不能更新的解决方法
  8. DevExpress导出Excel样式设置
  9. Webpack 基础使用
  10. android中在java代码中设置Button按钮的背景颜色