WPF設計學習記錄滴滴滴4

    <Button x:Name="btn"Content="退出"Width=" 100"Height="25"Click="btn_Click" IsDefault="True"/>
<Button x:Name="btn"           <!-- 控件標識:定義按鈕的實例名稱為"btn",用于后臺代碼(如C#)中引用該控件 -->Content="退出"          <!-- 顯示文本:設置按鈕上顯示的文本內容為"退出" -->Width=" 100"            <!-- 控件寬度:設置按鈕寬度為100設備無關單位(注意值前空格會被XAML自動忽略) -->Height="25"             <!-- 控件高度:設置按鈕高度為25設備無關單位 -->Click="btn_Click"       <!-- 事件綁定:將按鈕的點擊事件關聯到后臺代碼中的btn_Click方法 -->IsDefault="True"/>      <!-- 默認行為:設置該按鈕為窗口默認按鈕,用戶按Enter鍵時會自動觸發點擊事件 -->

<WrapPanel><TextBlock Text="這是一個TextBlock文字塊" Margin="5"/><TextBlock Text="粗體文字" FontWeight="Bold" Margin="5"/><TextBlock Text="粗體文字" FontWeight="Light" Margin="5"/><TextBlock Text="斜體文字" FontStyle="Italic" Margin="5"/><TextBlock Text="微軟雅黑" FontFamily="Microsoft YaHei UI" Margin="5"/><TextBlock Text="大號字體" Foreground="Red" Margin="5"/><TextBlock Text="紅色文字" Foreground="Yellow" Margin="5"/><TextBlock Text="底色文字" Foreground="Yellow" Background="Red" Margin="5"/><TextBlock Background="LightGray" Height="25"><Run Foreground="Red">這行文字</Run><Run Foreground="Green">由三部分</Run><Run Foreground="Blue">組成</Run></TextBlock><Grid Width="150" Height="100" Margin="5" Background="LightGoldenrodYellow"><TextBlock Text="這段文字體現了文字的文本換行屬性TextWrapping" TextWrapping="Wrap" Margin="10"/></Grid><!--使用Run--><Grid><TextBlock x:Name="txtBlock"Width="320"Height="100"FontSize="15"FontFamily="微軟雅黑"FontWeight="Black"FontStretch="Condensed"Foreground="#dddddd"Background="Teal"TextAlignment="Center"TextWrapping="Wrap"TextTrimming="CharacterEllipsis"Margin="10" Padding="5"HorizontalAlignment="Left"VerticalAlignment="Center"LineHeight="30"ToolTip="《臨江仙·滾滾長江東逝水》"><Run Foreground="#CDB632" TextDecorations="Underline">滾滾長江東逝水,浪花淘盡英雄。是非成敗轉頭空。青山依舊在,幾度夕陽紅。</Run><Run Text="白發漁樵江渚上,慣看秋月春風。一壺濁酒喜相逢。古今多少事,都付笑談中。"/></TextBlock></Grid>
</WrapPanel>
一、基礎文本控件配置
  1. 基礎樣式組合
<TextBlock Text="粗體文字" FontWeight="Bold" Margin="5"/>
<TextBlock Text="斜體文字" FontStyle="Italic" Margin="5"/>
    • 實現粗體/斜體效果,Margin="5"統一設置四邊5單位間距
    • 注意:FontWeight="Light"在WPF中有效,但需確保字體支持該權重

字體與顏色定制

<TextBlock Text="微軟雅黑" FontFamily="Microsoft YaHei UI"/>
<TextBlock Text="大號字體" Foreground="Red"/> <!-- 實際未設置FontSize屬性 -->
<TextBlock Text="紅色文字" Foreground="Yellow"/> <!-- 文本內容與顏色反諷設計 -->
  • 支持中文字體名稱直接調用(需系統安裝對應字體)
  • 警示案例:第四個控件Background="Red"與黃色前景形成高對比警示效果
二、進階排版技術
  1. 分段式文本(Run元素)
<TextBlock><Run Foreground="Red">這行文字</Run><Run Foreground="Green">由三部分</Run><Run Foreground="Blue">組成</Run>
</TextBlock>
    • 允許同一TextBlock內分段設置樣式
    • 支持混合使用TextDecorations="Underline"等修飾屬性

詩詞排版案例

<TextBlock LineHeight="30" TextAlignment="Center" TextTrimming="CharacterEllipsis"><Run Foreground="#CDB632" TextDecorations="Underline">滾滾長江東逝水...</Run><Run>白發漁樵江渚上...</Run>
</TextBlock>
  • LineHeight="30"控制行距為2倍默認高度(基于15px字體)
  • TextTrimming="CharacterEllipsis"實現溢出文本以"..."省略
  • ToolTip屬性實現懸停顯示完整詩詞標題
三、布局與容器整合
  1. 自適應布局容器
<Grid Width="150" Height="100" Background="LightGoldenrodYellow"><TextBlock TextWrapping="Wrap" Margin="10"/>
</Grid>
    • TextWrapping="Wrap"強制文本在容器邊界換行
    • 嵌套布局時,Grid容器通過明確尺寸約束文本域
擴展說明
  1. 顏色值規范
    • 支持十六進制(#CDB632)、命名顏色(Red)、系統資源(SystemColors
    • 推薦使用ARGB格式(如#80FF0000半透明紅)增強設計靈活性
  2. 排版精度控制
    • TextAlignment="Center"實現水平居中
    • VerticalAlignment="Center"確保容器內垂直居中
    • Padding="5"在文本與容器邊界間添加緩沖空間
  3. 字體技術細節
    • FontStretch="Condensed"壓縮字符寬度(需字體支持)
    • 微軟雅黑在Windows系統默認安裝,跨平臺需字體回退策略

    <StackPanel Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center"><TextBlock Text="用戶名" Margin="5"/><TextBox x:Name="txtbox" Width="100" Height="25" MaxLength="10" CharacterCasing="Upper"/><Button x:Name="btn" Content="確定" Height="25" Margin="5 0" Click="btn_Click"/></StackPanel>
<!-- 水平布局容器:創建水平排列的堆疊面板,在父容器中水平和垂直居中 -->
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center"><!-- 標簽控件:顯示"用戶名"文本,四邊保留5單位間距 --><TextBlock Text="用戶名" Margin="5"/><!-- 輸入框控件:設置輸入限制與格式規范 --><TextBox x:Name="txtbox" Width="100" Height="25"MaxLength="10"              <!-- 最大字符數:限制輸入不超過10個字符 -->CharacterCasing="Upper"/>   <!-- 自動轉換:強制所有輸入字母轉為大寫 --><!-- 功能按鈕:綁定點擊事件實現交互邏輯 --><Button x:Name="btn" Content="確定" Height="25"Margin="5 0"                <!-- 邊距優化:左右無間距,上下保留5單位間距 -->Click="btn_Click"/>          <!-- 事件綁定:關聯后臺btn_Click方法 -->
</StackPanel>

// 創建文本范圍對象:獲取RichTextBox從開頭到結尾的全部內容 
TextRange txtRange = new TextRange(richTxtBox.Document.ContentStart,   // 內容起始點(邏輯位置)richTxtBox.Document.ContentEnd      // 內容結束點(包含最后一個字符后的邏輯位置)
);// 彈窗顯示純文本內容(自動過濾所有格式和控件)
MessageBox.Show(txtRange.Text);         // 實際應用場景:文本導出預覽/字數統計 // 創建新段落容器(相當于HTML的<p>標簽)
Paragraph paragraph = new Paragraph();  // 默認帶段落間距,可通過Margin屬性調整 // 創建帶動態時間的文本片段(類似<span>標簽)
Run run = new Run($"當前時間:{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}"); 
run.Foreground = Brushes.Black;         // 設置字體顏色(等效于Foreground="#FF000000")// 將文本片段插入段落 
paragraph.Inlines.Add(run);             // 支持多Run組合實現彩色混排文本 // 將段落添加到富文本框文檔末尾 
richTxtBox.Document.Blocks.Add(paragraph);  // Blocks集合管理段落/表格等塊級元素 

二、擴展技術說明(WPF富文本處理)
1. 文檔對象模型
對象作用
TextRange跨段落文本操作(支持格式復制/批量修改)
Paragraph段落容器(可設置TextIndent首行縮進/LineHeight行高)
Run基礎文本單元(最小樣式應用范圍,改變屬性會中斷樣式繼承)

<StackPanel><RichTextBox x:Name="richTxtBox" Margin="10 5" Height="270"><FlowDocument><Paragraph>RichTextBox富文本框控件到底有什么強大的功能?<Bold Foreground="DarkRed">請看下面.</Bold></Paragraph><Paragraph Foreground="Blue">RichTextBox唯一的子元素是FlowDocument</Paragraph><Paragraph Foreground="DarkGreen">FlowDocument是指流文檔,一個流文檔由一個或多個Block構成,所以它有一個Blocks屬性。Block只是一個抽象基類,所以流文檔的子元素其實是繼承了Block的子類,例如:</Paragraph><List MarkerOffset="25" MarkerStyle="Decimal" StartIndex="1"><ListItem><Paragraph>BlockUIContainer(UI元素容器)</Paragraph></ListItem><ListItem><Paragraph>List(有序列表)</Paragraph></ListItem><ListItem><Paragraph>Paragraph(段落)</Paragraph></ListItem><ListItem><Paragraph>Section(分組)</Paragraph></ListItem><ListItem><Paragraph>Table(網格)</Paragraph></ListItem></List></FlowDocument></RichTextBox><Button x:Name="btn" Content="確定" Margin="10,5" Click="btn_Click"/>
</StackPanel>
<!-- 垂直堆疊容器:默認垂直排列子元素 -->
<StackPanel><!-- 富文本編輯器:支持復雜內容排版與交互 --><RichTextBox x:Name="richTxtBox" Margin="10 5"        <!-- 邊距設置:左右10單位,上下5單位 -->Height="270">       <!-- 固定高度:適合顯示多段落內容 --><!-- 流式文檔容器:承載結構化富文本內容 --><FlowDocument><!-- 混合樣式段落:演示格式嵌套 --><Paragraph>RichTextBox富文本框控件到底有什么強大的功能?<Bold Foreground="DarkRed">請看下面.</Bold>  <!-- 粗體+顏色復合樣式 --></Paragraph><!-- 帶顏色段落:說明核心概念 --><Paragraph Foreground="Blue">RichTextBox唯一的子元素是FlowDocument  <!-- 重要約束條件 --></Paragraph><!-- 分層說明段落:解釋文檔結構 --><Paragraph Foreground="DarkGreen">FlowDocument是指流文檔,一個流文檔由一個或多個Block構成,所以它有一個Blocks屬性。Block只是一個抽象基類,所以流文檔的子元素其實是繼承了Block的子類,例如:</Paragraph><!-- 有序列表:展示Block派生類 --><List MarkerOffset="25"               <!-- 編號縮進25單位 -->MarkerStyle="Decimal"           <!-- 使用數字編號 -->StartIndex="1">                 <!-- 起始編號為1 --><ListItem><Paragraph>BlockUIContainer(UI元素容器)</Paragraph>  <!-- 可嵌入按鈕等控件 --></ListItem><ListItem><Paragraph>List(有序列表)</Paragraph>  <!-- 當前列表自身的類型 --></ListItem><ListItem><Paragraph>Paragraph(段落)</Paragraph>  <!-- 基礎文本容器 --></ListItem><ListItem><Paragraph>Section(分組)</Paragraph>  <!-- 實現多列布局 --></ListItem><ListItem><Paragraph>Table(網格)</Paragraph>  <!-- 創建表格數據 --></ListItem></List></FlowDocument></RichTextBox><!-- 功能按鈕:觸發后臺交互邏輯 --><Button x:Name="btn" Content="確定" Margin="10,5"          <!-- 邊距設置:左右10單位,上下5單位 -->Click="btn_Click"/>     <!-- 事件綁定:需在后臺實現處理方法 -->
</StackPanel>

    <Button x:Name="btn2" Content="網站" Width="100" Height="30" Margin="5" Click="btn2_Click"><Button.ToolTip><StackPanel><TextBlock Text="官方網站" FontWeight="Bold"/><TextBlock Text="點擊這個按鈕,進入WPF中文網站"/><Border BorderBrush="Silver" BorderThickness="0 1 0 0" Margin="0 4"/><TextBlock Text="http://www.wpfsoft.com" FontStyle="Italic"/></StackPanel></Button.ToolTip></Button>
<!-- 網站導航按鈕:集成多層級工具提示 -->
<Button x:Name="btn2" Content="網站" Width="100"            <!-- 標準尺寸:適配主流導航欄布局 -->Height="30"Margin="5"            <!-- 邊距:四邊保留5單位間隔 -->Click="btn2_Click">   <!-- 事件綁定:需實現網頁跳轉邏輯 --><!-- 復合式工具提示:突破默認單行文本限制 --><Button.ToolTip><StackPanel><!-- 標題行:突出顯示網站性質 --><TextBlock Text="官方網站" FontWeight="Bold"/>  <!-- 粗體強化重點 --><!-- 操作指引:說明按鈕核心功能 --><TextBlock Text="點擊這個按鈕,進入WPF中文網站"/><!-- 分隔線:使用邊框模擬水平分割線 --><Border BorderBrush="Silver" BorderThickness="0 1 0 0"  <!-- 僅顯示上邊框 -->Margin="0 4"/>             <!-- 上下增加4單位間距 --><!-- 網址展示:斜體弱化輔助信息 --><TextBlock Text="http://www.wpfsoft.com"  FontStyle="Italic"/>    <!-- 提示可復制性 --></StackPanel></Button.ToolTip>
</Button>

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/75542.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/75542.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/75542.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

JVM 有哪些垃圾回收器

垃圾收集算法 標記-復制算法(Copying): 將可用內存按容量劃分為兩個區域,每次只使用其中的一塊。當這一塊的內存用完了,就將還存活著的對象復制到另外一塊上面, 然后再把已使用過的內存空間一次清理掉。 標記-清除算法(Mark-Sweep): 算法分為“標記” 和“清除”兩個…

React DndKit 實現類似slack 類別、頻道拖動調整位置功能

一周調試終于實現了類 slack 類別、頻道拖動調整位置功能。 歷經四個版本迭代。 實現了類似slack 類別、頻道拖動調整功能 從vue->react &#xff1b;更喜歡React的生態及編程風格&#xff0c;新項目用React來重構了。 1.zustand全局狀態 2.DndKit 拖動 功能視頻&…

新浪財經股票每天10點自動爬取

老規矩還是先分好三步&#xff0c;獲取數據&#xff0c;解析數據&#xff0c;存儲數據 因為股票是實時的&#xff0c;所以要加個cookie值&#xff0c;最好分線程或者爬取數據時等待爬取&#xff0c;不然會封ip 廢話不多數&#xff0c;直接上代碼 import matplotlib import r…

使用Android 原生LocationManager獲取經緯度

一、常用方案 1、使用LocationManager GPS和網絡定位 缺點&#xff1a;個別設備,室內或者地下停車場獲取不到gps定位,故需要和網絡定位相結合使用 2、使用Google Play服務 這種方案需要Android手機中有安裝谷歌服務,然后導入谷歌的第三方庫&#xff1a; 例如&#xff1a;i…

驗證碼實現

驗證碼案例 學了Spring MVC &#xff0c;配置 相關章節&#xff0c; 現可以嘗試寫一個前后端交互的驗證碼 文章目錄 驗證碼案例前言一、驗證碼是什么&#xff1f;二、需求1.引入依賴2.導入前端頁面3.約定前后段交互接口 三、代碼解析Controllermodelapplication.xml 四丶結果五…

查詢當前用戶的購物車和清空購物車

業務需求&#xff1a; 在小程序用戶端購物車頁面能查到當前用戶的所有菜品或者套餐 代碼實現 controller層 GetMapping("/list")public Result<List<ShoppingCart>> list(){List<ShoppingCart> list shoppingCartService.shopShoppingCart();r…

(多看) CExercise_05_1函數_1.2計算base的exponent次冪

題目&#xff1a; 鍵盤錄入兩個整數&#xff1a;底(base)和冪指數(exponent)&#xff0c;計算base的exponent次冪&#xff0c;并打印輸出對應的結果。&#xff08;注意底和冪指數都可能是負數&#xff09; 提示&#xff1a;求冪運算時&#xff0c;基礎的思路就是先無腦把指數轉…

【nacos安裝指南】

Nacos安裝指南 1.Windows安裝 開發階段采用單機安裝即可。 1.1.下載安裝包 在Nacos的GitHub頁面&#xff0c;提供有下載鏈接&#xff0c;可以下載編譯好的Nacos服務端或者源代碼&#xff1a; GitHub主頁&#xff1a;https://github.com/alibaba/nacos GitHub的Release下載…

通過發音學英語單詞:從音到形的學習方法

&#x1f4cc; 通過發音學英語單詞&#xff1a;從音到形的學習方法 英語是一種 表音語言&#xff08;phonetic language&#xff09;&#xff0c;但不像拼音文字&#xff08;如漢語拼音、西班牙語等&#xff09;那么規則&#xff0c;而是 部分表音部分表意。這意味著我們可以通…

列表某個字段由多個值組成,使用id匹配展示

說明&#xff1a;列表中字段A的值由多個值組成&#xff0c;但是后端返回的是這多個值的id字符串&#xff0c;需要前端拿著多個id組成的字符串去另一個接口數據源匹配展示 列表后端返回多個字符串如下&#xff1a; sectorName: "1899292545382895618,1907311191514636289…

MQL5教程 05 指標開發實戰:雙色線、雙線變色MACD、跨時間周期均線

文章目錄 一、雙色線指標二、雙線變色MACD指標三、跨時間周期均線 一、雙色線指標 這里的類型中&#xff0c;Color開頭的&#xff0c;是可以選擇多個顏色的。 #property indicator_chart_window #property indicator_buffers 18 #property indicator_plots 7 //--- plot xian…

Java全棧面試寶典:線程安全機制與Spring Boot核心原理深度解析

目錄 一、Java線程安全核心原理 &#x1f525; 問題1&#xff1a;線程安全的三要素與解決方案 線程安全風險模型 線程安全三要素 synchronized解決方案 &#x1f525; 問題2&#xff1a;synchronized底層實現全解析 對象內存布局 Mark Word結構&#xff08;64位系統&…

【Cursor】設置語言

Ctrl Shift P 搜索 configure display language選擇“中文-簡體”

【新能源汽車整車動力學模型深度解析:面向MATLAB/Simulink仿真測試工程師的硬核指南】

1. 前言 作為MATLAB/Simulink仿真測試工程師,掌握新能源汽車整車動力學模型的構建方法和實現技巧至關重要。本文將提供一份6000+字的深度技術解析,涵蓋從基礎理論到Simulink實現的完整流程。內容經過算法優化設計,包含12個核心方程、6大模塊實現和3種驗證方法,滿足SEO流量…

Java 線程池與 Kotlin 協程 高階學習

以下是Java 線程池與 Kotlin 協程 高階學習的對比指南&#xff0c;結合具體代碼示例&#xff0c;展示兩者在異步任務處理中的差異和 Kotlin 的簡化優勢&#xff1a; 分析&#xff1a; 首先&#xff0c;我們需要回憶Java中線程池的常見用法&#xff0c;比如通過ExecutorService創…

嵌入式EMC設計面試題及參考答案

目錄 解釋 EMC(電磁兼容性)的定義及其兩個核心方面(EMI 和 EMS) 電磁兼容三要素及相互關系 為什么產品必須進行 EMC 設計?列舉至少三個實際工程原因 分貝(dB)在 EMC 測試中的作用是什么?為何采用對數單位描述干擾強度? 傳導干擾與輻射干擾的本質區別及典型頻率范圍…

實操(進程狀態,R/S/D/T/t/X/Z)Linux

1 R 狀態并不直接代表進程在運行&#xff0c;而是該進程在運行隊列中進行排隊&#xff0c;由操作系統在內存維護的隊列 #include <stdio.h> #include <unistd.h>int main() {while(1){printf("我在運行嗎\n");sleep(1);}return 0; }查看狀態&#xff08…

React 文件上傳新玩法:Aliyun OSS 加持的智能上傳組件

文件上傳是前端開發中的“老朋友”&#xff0c;但如何讓它既簡單又強大&#xff0c;還能無縫對接云端存儲&#xff1f;今天&#xff0c;我要帶你認識一個超酷的 React 組件 AliUploader&#xff0c;它不僅支持拖拽上傳、批量編輯和文件排序&#xff0c;還直接把文件傳到 Aliyun…

LabVIEW多線程

在 LabVIEW 中&#xff0c;多線程編程是提升程序執行效率的關鍵手段&#xff0c;尤其是在需要并行處理數據采集、控制執行和用戶界面交互的場景下。LabVIEW 本身是基于數據流&#xff08;Dataflow&#xff09;的編程語言&#xff0c;天然支持多線程&#xff0c;但要高效利用多線…

圖解AUTOSAR_SWS_LINStateManager

AUTOSAR LIN狀態管理器(LinSM)詳細設計 文檔摘要 本文檔提供了AUTOSAR LIN狀態管理器(LinSM)模塊的詳細設計解析,包括架構、狀態機、睡眠喚醒流程以及配置結構。通過圖形化方式展現LinSM在AUTOSAR通信棧中的作用及其與其他模塊的交互關系。 目錄 AUTOSAR LIN狀態管理器(Lin…