[C# WPF] 关于将文本框竖起来(旋转文字)
xx.xmal.cs 后台代码中动态添加控件到 UI
文字显示在一个 Canvas 中(定位用Canvas.SetLeft() / Canvas.SetTop() ),
为了实现排版效果,可适当在 TextBlock 外套一层 StackPanel 或 DockPanel
DockPanel pnl = new DockPanel();
TextBlock titleBlock = new TextBlock();
titleBlock.LayoutTransform = new RotateTransform()
{
Angle = 270 // or 90
};
titleBlock.VerticalAlignment = VerticalAlignment.Center;
titleBlock.Text = "Here some Text";
Canvas.SetLeft(pnl, 50);
Canvas.SetTop(pnl, 100);
这时候,文本旋转,跟定位时的 坐标 X Y 并没有相互影响(也就是上面的设位置,不需要作什么特别考虑)。
而另一种情况:
在渲染过程中自定义渲染内容 ( 重写的 OnRender )
// Sample -- Ctrl => Height:500 Width:600
protected override void OnRender(DrawingContext dc)
{
base.OnRender(dc);
// TODO : for sample
var CtrlWidth = 600;
var CtrlHeight = 400;
// ...
// DrawTitle
var ft = new FormattedText("Some Text Here", CultureInfo.CurrentCulture,
FlowDirection.LeftToRight, new Typeface("Tahoma"), 15, Brushes.Black);
// use ft.Width and ft.Height to calculate POSITIONS
RotateTransform RT = new RotateTransform() { Angle = 270 }; // 要旋转的角度
var point = new Point((CtrlHeight - ft.Width) / 2 - CtrlWidth, (CtrlWidth - ft.Height)/2 - CtrlHeight); // 注意这里的计算 很容易迷糊
dc.PushTransform(RT);
dc.DrawText(ft, point );
dc.Pop();
// Do other Drawing..
}
要点:
OnRender 中旋转时,以渲染对象的 Point(0, 0) 点为基准,进行旋转,270度,90度的时候,就是X Y对调的情况。
当旋转180度的时候,X取反,Y取反。
[C# WPF] 关于将文本框竖起来(旋转文字)的更多相关文章
- [WPF]实现TextBox文本框单击全选
原文:[WPF]实现TextBox文本框单击全选 /// <summary> /// Void:设置获取焦点时全选文本 /// </summary&g ...
- WPF 自定义数字文本框:NumericBox
由于项目需要,最近写了一个数字输入文本框,在此作个备忘. 1.代码调用 <controls:NumericBox Height="32" Width="80&quo ...
- 【Javascript】在文本框光标处插入文字并定位光标 (转)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 使用jquery实现文本框输入特效:文字逐个显示逐个消失反复循环
前两天看到某个网站上的输入框有个小特效:文字逐个显示,并且到字符串最大长度后,逐个消失,然后重新循环显示消失,循环显示字符串数组.我对这个小特效有点好奇,于是今天自己尝试用jquery写一个简单的小d ...
- 给<input>文本框添加灰色提示文字
value="你的提示文字" onFocus="if(value==defaultValue){value='';this.style.color='#000'}&quo ...
- 给input文本框添加灰色提示文字,三种方法.
1.这个是HTML5的属性. h5的好简单.... placeholder="这里输入文字" 2.HTML的: value="你的提示文字" onFocus=& ...
- 使用jQuery实现文本框input定位到文字最后(兼容所有浏览器)
$.fn.setCursorPosition = function(position){ if(this.lengh == 0) return this; return $(this).setSele ...
- jQuery 文本框 光标 移动到 文字最后
方法一:调用办法:setCaretToPos(document.getElementById("YOURINPUT"), 4); function setSelectionRang ...
- 无废话ExtJs 入门教程五[文本框:TextField]
无废话ExtJs 入门教程五[文本框:TextField] extjs技术交流,欢迎加群(201926085) 继上一节内容,我们在表单里加了个两个文本框.如下所示代码区的第42行位置,items: ...
随机推荐
- 数学--数论-- HDU 2601 An easy problem(约束和)
Problem Description When Teddy was a child , he was always thinking about some simple math problems ...
- 【K8S】K8S 1.18.2安装dashboard(基于kubernetes-dashboard 2.0.0版本)
[K8S]K8S 1.18.2安装dashboard(基于kubernetes-dashboard 2.0.0版本) 写在前面 K8S集群部署成功了,如何对集群进行可视化管理呢?别着急,接下来,我们一 ...
- Nginx入门资料
最近在学习Nginx,记录一下自己的学习历程. 1. Nginx开发从入门到精通 (淘宝技术团队编写,值得一看) 2. <深入理解Nginx:模块开发与架构解析> 3. Nginx模块开发 ...
- C. Fountains
\(整体思路没错,但是我貌似太麻烦了.......\) \(分情况讨论\) \(Ⅰ.coin和diamond各选一个物品,这个简单\) \(Ⅱ.在coin中选两个或者在diamond选两个\) \(开 ...
- spring Code(spring 核心)
一.spring的作用 spring 就是为了让我们以后能够做大的项目准备的.spring核心的功能就是一个工厂模式,spring相当于为你的项目专门成立一个一个工厂,这个工厂负责创建对象 ,维护对象 ...
- 05_CSS入门和高级技巧(3)
上节课复习 !important不能影响就近原则,远的标签如果加上!important也干不过近的标签! !important不能影响继承权重是0,通过继承的标签加上!important也干不过直接选 ...
- JDBC03 Statement接口
Statement接口 用于执行静态SQL语句并返回它所生成结果的对象 三种Statem类 Statement:由createStatement创建,用于发送简单的SQL语句(不带参数的),会有SQL ...
- leeCode刷题 lc184
Employee 表包含所有员工信息,每个员工有其对应的 Id, salary 和 department Id. +----+-------+--------+--------------+| Id ...
- 容器技术之LXC
什么是容器?在生活中我们常见的容器有各种瓶瓶罐罐.各种能够容纳其它物料的东西叫容器:容器的特点就是有着很好的隔离作用,使得不同的物料互相隔离:除此之外容器还方便运输.方便储存:这是生活中所说的容器,以 ...
- Springboot 上传CSV文件并将数据存入数据库
.xml文件依赖配置 <!--csv依赖 --> <dependency> <groupId>org.apache.commons</groupId> ...