WPF学习总结和记录(六)-文本和墨水

WPF控件(NLogViewer)中,输出Nlog日志信息 WPF控件(NLogViewer)中,输出Nlog日志信息 1、引入NLog、NLog.Config、NLogViewer库 在NuGet中搜索分别搜索NLog、NLog.Config、NLogViewer 逐一安装 2、配置NLog.config 在引入NLog.Config的库之后在项目中会生成一个 "NLog.config" 的配置文件,要是没有就自己手动创建一个 NLog.config配置文件: <?xml version="1.0" encoding="utf-8" ?> &lt 阅读详情

1. ProgressBar

ProgressBar 有一个默认的Minimum 属性0,和一个默认的Maximum 属性100,它只添加了两个RangeBase 已经提供了的公共属性:
·IsIndeterminate —— 当把它设置为true 时,ProgressBar 会显示一段通用的动画(这样,Minimum、Maximum 以及Value 的值不会影响这段动画)。如果你不知道具体需要花费多长时间,或者你懒于去做显示真正进度的工作,这非常有用!
·Orientation —— 默认为Horizontal,但是也可以被设置为Vertical,可以使进度从下走到上而不是从左走到右。除了那些老式的全屏安装软件以外,还没见到有应用程序使用“温度计样式”的垂直进度条,但是不管怎么说这使得实现这种效果变得很容易!

 

2. Slider

Slider 比ProgressBar 稍微复杂一点,因为它使用户能够通过在刻度尺移动手指光标来改变当前的值。

Slider 也有一个默认的Minimum 属性值0 和一个默认的Maximum 属性值10,同样也定义了Orientation属性(默认是Horizontal),但是它包含了几个属性,用于调整刻度的位置和频率、ToolTip 的位置和精度(这个ToolTip 是用来显示手指光标移动到了哪个当前值)、决定手指光标是自动贴近刻度值还是平滑地移动到任何值。对于键盘导航来说,Slider 同样包含了Delay 以及Interval 属性,它们与RepeatButton 的同名属性一致。

要启用刻度,可以把TickPlacement 设定为TopLeft、BottomRight 或者Both。TickPlacement 的值名字很奇怪,但是它们包含了Slider 的方向。当TickPlacement 被设置为BottomRight,如果Slider 是水平的,刻度就在底部;如果是垂直的,就在右边。类似地,当TickPlacement 被设置为TopLeft 时,如果Slider 是垂直的,刻度就在顶部;如果Slider 是水平的,刻度就在左边。当TickPlacement 被设置为None(默认值)时,手指光标被给予了一个更简单的外观。

 

文本和墨水控件

1. TextBox

使用户能够输入一行或者多行文字。和其他大部分WPF 控件不一样的是,内容不是存储为一个通常的System.Object,而是存储在一个叫作Text 的字符串属性中。

尽管TextBox 表面上看起来像一个简单控件,但它却内建了各种功能支持:与Cut、Copy、Paste、Undo和Redo 命令的绑定(就像在之前章节所看到的),甚至还可以与拼写检测绑定。
TextBox 包含了几个(通过选择、行号等)获得文字块的方法和属性,还有用来在字符索引、行索引以及物理点之间进行转换的函数。它也定义了TextChanged 以及SelectionChanged 事件。


除非TextBox 的尺寸被它的周边内容(或者给定的显式尺寸)所限制,否则它会随着内部文字的增长而增长。但是当TextBox 的宽被限制时,通过设定TextWrapping 属性为Wrap 或者WrapWithOverflow,可以将文字换行形成额外的行。Wrap 不允许有任何一行超过控件的边界,即使在一个字的中间,它也会强行换行。WrapWithOverf low 仅会保留一行,只要一有机会,长文字就会被截断。

要启用TextBox(或者RichTextBox)中的拼写检查,可以设置SpellCheck.IsEnabled 属性为true。这种体验与Microsoft Word 的拼写检查类似,它会为拼写有问题的字加上红色下划线,可以用鼠标右键单击它来查看并应用建议的字。

 

2.RichTextBox

RichTextBox 是一种更加高级的TextBox,它能包含格式化的文字(以及嵌在文字当中的任意对象)。

RichTextBox 的属性比TextBox 的对应属性更复杂。TextBox 提供了简单的整数属性,如CaretIndex、SelectionStart 和SelectionEnd。RichTextBox 提供了一个TextPointer 类型的CaretPosition 属性,以及TextSelection 类型的Selection 属性。另外,RichTextBox 的内容存在一个Document 属性里(类型是FlowDocument),而不是存在一个简单的字符串类型的Text 属性里。

 

3. PasswordBox

PasswordBox 是一种设计更简单的TextBox,用于输入密码。它不会显示输入的文字,而是显示小圆点。

PasswordBox 和前面两个控件不同的是,它不是从TextBoxBase 继承的,所以它不支持Cut、Copy、Undo 和Redo 命令(但它支持Paste),也不支持拼写检查。

PasswordBox 的文本保存在一个叫作Password 的字符串属性里。内部把密码存在一个System.Security.SecureString 对象中,这样可以增加一些额外的保护。一个普通的System.- String 的非加密内容会被存在垃圾回收站中并保存一段时间,但SecureString 的内容是被加密的,并会被强行清空。

只定义了一个Password- Changed 事件。

 

4. InkCanvas

令人惊异的InkCanvas 是一种万能的元素,它的主要目的是(通过鼠标或者和指示笔)捕捉笔迹。

InkCanvas 从技术上说不是一个控件,因为它直接从FrameworkElement 继承而来,但是它的行为和控件非常像(但不能用一个新的模板来改变它的样式)

通过使用InkCanvas 的DefaultDrawingAttributes 属性,可以改变以后输入的笔画外观(宽度、颜色等)。Stroke 有它自己的DrawingAttribute 属性,这样才能基于每一笔每一画来进行外观修改。

 

InkCanvas 支持几种模式,它们能利用EditingMode 属性被独立地应用到指示笔尖(或鼠标),并通过Edit ingModeInverted 属性来应用于指示笔的末端(back end)。只读的ActiveEdit ingMode 属性可以告诉你哪一个属性当前正在被使用。所有这3 个属性都是InkCanvasEdit ingMode 类型的,它有以下几种值:
·Ink(Edit ingMode 的默认值)—— 通过鼠标或者指示笔来绘制笔画。
·InkAndGesture —— 和Ink 一样,但同样可以识别用户的手势。手势的列表(Up、Down、Circle、ScratchOut 和Tap)保存在System.Windows.Ink.Applicat ionGesture 枚举类型中。
·GestureOnly —— 只识别手势,不会绘制用户输入的笔画。
·EraseByStroke (Edit ingModeInverted 的默认值)—— 当笔画被触及时将笔画擦掉。
·EraseByPoint —— 只擦掉直接碰及到的笔画部分(就像传统的铅笔橡皮)。

·Select —— 当被触及时,选择笔画或者任何UIElement,使它们能被删除、移动或者在InkCanvas 范围内被调整尺寸。
·None —— 对于鼠标或者指示笔不做任何响应。

 

一个综合的例子

 

 <StackPanel Margin="5">
        <!--Check spell-->
        <TextBox SpellCheck.IsEnabled="true" ></TextBox>
        <RichTextBox></RichTextBox>
        <Label>Password</Label>
        <PasswordBox></PasswordBox>
        <InkCanvas></InkCanvas>
    </StackPanel>

 

可以看出 第一个有拼写检查 。

地下可以进行鼠标绘制。

 

控件学习完了。

WPFWPF 常用控件 一、WPF的概述 1.1 WPF 简介 WPF (全称:Windows Presentation Foundation)的核⼼是⼀个与分辨率⽆关且基于⽮量的呈现引擎,旨在充分利⽤现代图形硬件。 WPF 通过⼀套完善的应⽤程序开发功能对该核⼼进⾏了扩展,这些功能包括可扩展应⽤程序标记语⾔ (XAML)控件、数据绑定、布局、⼆维三维图形、动画、样式、模板、⽂档、媒体、⽂本版式。 WPF 属于 .NET,因此可以⽣成整合 .NET API 其他元素的应⽤程序。 1.2 WPF 特点 呈现效果 阅读详情

相关推荐

【UV打印机】理光GEN5喷头组合方案全解析:从4C到WPF的实战配置

本文全面解析了理光GEN5喷头在UV打印机中的组合方案,从基础的4C配置到高级的WPF实战配置。详细介绍了喷头的技术特性、可变墨滴技术以及在不同应用场景中的优化设置,帮助用户提升打印品质生产效率。特别适合从事UV打印的技术人员设备操作员参考。

weixin_26833939的博客 218

Orc.LogViewer:在WPF应用程序中使用的高级日志查看器

Orc.LogViewer 姓名 徽章 聊天 资料下载 稳定版 不稳定版本 WPF应用程序的高级日志查看器。 有关文档,请访问

深入探究 C# WPF InkCanvas 控件:数字墨水的无限可能 16

InkCanvas是 WPF 提供的一个用于处理数字墨水输入的控件。它可以捕获用户使用鼠标、触控笔或触摸屏进行的书写绘画操作,并将其转换为数字墨水数据。这些数据可以以不同的方式进行存储、显示处理,为应用程序增添了丰富的交互性。InkCanvas控件为 C# WPF 开发者提供了一个强大的数字墨水处理平台,通过其丰富的功能灵活的特性,可以实现各种复杂的书写绘画应用。无论是简单的笔记应用还是专业的绘图软件,InkCanvas都能满足需求。

Code365 219

wpf log4net richtextbox

简单日志记录,界面使用RichTextBox记录日志,根据日志级别显示日志内容不同的颜色,同时使用log4net记录本地文件日志。

textwrapping的不同显示效果

wpf中,TextBlock的TextWrapping有三个属性,NoWrap(默认),Wrap,WrapWithOverflow。 Wrap是按字符换行,WrapWithOverflow是按空格换行。 比如我们的字符串中有一个很长的单词,如果用Wrap,可能到这个单词中的某个字符就直接换行了,而WrapWithOverflow则会把这个单词的所有都显示在同一行,即使有些显示不出来。 如

bornonew的博客 1万+

日志查看器:显示日志记录信息的快速WPF控件

对于长时间运行的后台任务,用户了解当前执行的步骤很有帮助。LogViewer可以安全地多线程收集此信息,并将其显示为可滚动文本。LogViewer允许后台线程在不使用任何WPF代码的情况下写入格式化文本。当每秒需要写入数百条消息时,WPF更新每条消息的GUI的速度太慢。LogViewer收集消息,并每秒将它们发送到WPF线程10次。

寒冰屋的专栏 4382

WPF中InkCanvas墨水面板用法演示:轻松掌握墨水面板技巧

WPF中InkCanvas墨水面板用法演示:轻松掌握墨水面板技巧 去发现同类优质开源项目:https://gitcode.com/ WPF中InkCanvas(墨水面板)用法演示:项目的核心功能/场景 项目介绍 在现代软件开发中,图形界面设计越来越受到重视,尤其是在Windows平台的应用程序开发中,WPF技术以其强大的交互性美观的界面效果而广受欢迎。InkCanvas作为WPF中的一个组件,提...

gitblog_06761的博客 947

WPF学习(3)WPF控件

控件可以根据它们所对应的继承关系分成 4 个不同的种类: 内容控件 Items 控件 Range 控件 文本墨水控件 1. 内容控件 内容控件是只允许包含单一项(item)的简单控件。内容控件都继承自System.Windows.Controls.ContentControl,它们拥有只含有一项的Object 类型的Content 属性 WPF 自带的内容控件有3 大种类:...

weixin_33802505的博客 134

LiveDraw:基于WPF InkCanvas的实时屏幕绘制技术深度解析

LiveDraw是一个基于WPF(Windows Presentation Foundation)构建的实时屏幕绘制工具,其核心价值在于解决了传统截图标注工具无法在动态内容上进行实时绘制的技术痛点。项目采用.NET 5框架,利用WPF的InkCanvas控件实现了真正的透明背景绘制层,能够在任意应用程序窗口上进行实时标注,而无需中断当前工作流程。 ## 核心技术实现分析 ### 1. InkC

gitblog_00505的博客 443

wpf限制图片范围i_Github资源分享之录制视频生成Gif图片神器ScreenToGif

介绍ScreenToGIf可以让你记录你的所选区域的屏幕内容,并把它转换为GIF图片;它也可以使用摄像头进行视频的录制,并把视频转换为GIF图片;还可以录制画板的内容转换为GIf图片。最后还可以编辑GIF并将其保存为新的Gif或视频功能特点一个便携式,单个可执行非常小的应用程序,仅 660KB! (已压缩)。免费开源的应用程序,没有任何广告!种方式录制您的内容:屏幕,摄像头白板。一个强大的编...

weixin_30133813的博客 227

WPF中TextWrapping

良好的文本换行有助于提高内容的可读性易用性,特别是在有限的可视空间内展示大量文本时。对于无障碍支持,确保文本在换行后仍然保持合理的行高、字间距段落间距,有助于视力障碍者阅读辅助技术更好地解析理解内容。,可以实现文本自动适应容器尺寸,增强用户界面的灵活性适应性。是一个与文本布局相关的属性,用于控制文本在遇到容器边界时是否自动换行。属性在 WPF 中用于控制文本内容在容器边界处的换行行为,通过设置为。宽度时,文本会自动换行到下一行,保持所有内容可见。使得用户在输入过程中,当文本达到。

以梦为马 不负韶华 2293

【免费下载】 LogViewer:高效日志显示的WPF控件

**LogViewer** 是一款专为WPF应用设计的日志显示控件,它能够将日志信息以高效的方式展示在 `RichTextBox` 中,并始终自动滚动到内容的末尾。与传统的日志显示方式不同,**LogViewer** 不仅能够显示永久性内容,还能处理临时性内容,确保在大量日志信息更新时,用户界面依然保持流畅。 ## 项目技术分析 **LogViewer** 的核心技术在于其对WPF线程模型的巧...

gitblog_00563的博客 1556

后续来啦:Winform/WPF中快速搭建日志面板

继昨天发文ASP.NET Core 可视化日志组件使用(阅读文章,查看视频)后,视频下有朋友留言 “Winform客户端的程序能用它不?”,微信也有朋友问能否嫁接到WPF上,站长今早尝试了,是可以的! 原理是将Winform或WPF 应用程序,宿主到ASP.NET Core Web API上,具体先来个小视频看看效果,想要代码直接往下面翻: 【视频占位】 实战步骤: 创建一个 WPF 应用程序 添加ASP.NET Core、Serilog支持 WPF窗体中使用Serilog 完结 本文实战开始 1

Dotnet9的专栏 1191

WPF使用富文本框设置日志打印的颜色

WPF使用富文本框设置日志打印的颜色

云大圣_的博客 1075

WPF随笔(十一)--日志输出到界面

项目开发过程写过几个WPF的小工具,在使用过程中就需要把软件运行的情况以日志的形式输出到界面上,这里就把用过的几种方式总结一下。 1.直接输出到RichTextBox 输出到RichTextBox很简单直接了,代码如下: /// <summary> /// 日志输出 /// </summary> /// &l...

lordwish的专栏 1万+
上一篇: WPF学习总结和记录(五)-Menu
下一篇: WPF学习总结和记录(七)-尺寸缩放 定位 上
fffanpei
博客等级 码龄19年 14粉丝 14原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值