C#之WPF学习之路(5)

news/发布时间2024/9/20 5:33:56

目录

内容控件(2)

TextBlock文字块

TextBox文本框

TextBoxBase基类

TextBox控件

RichTextBox富文本框

ToolTip控件(提示工具)

Popup弹出窗口

Image图像控件

属性成员

事件成员


内容控件(2)

TextBlock文字块

TextBlock是用于显示文本的控件,相比Label,它提供了更多的功能和灵活性。

TextBlock的特点和用法:

  • 文本格式化:TextBlock允许我们应用格式化文本,包括设置字体、字号、加粗、斜体等样式。
  • 文本换行:TextBlock可以自动换行长文本,而不会截断内容。
  • 内联元素:TextBlock允许我们在文本中插入内联元素,如超链接、图标等。
  • 富文本支持:TextBlock可以显示富文本内容,包括不同的字体、颜色、下划线等。
  • 高性能:相比Label,TextBlock通常具有更好的性能,特别是在处理大量文本时。

TextBlock提供了丰富的属性来控制文本的外观和布局。下面是对这些属性的简要说明:

  • FontWeight: 控制文本的粗细程度,可以设置为Normal、Bold等。
  • FontStyle: 控制文本的样式,例如斜体、正常。
  • FontFamily: 设置文本的字体系列,如Arial、微软雅黑等。
  • Text: 设置或获取TextBlock中显示的文本内容。
  • ContentEnd: 获取TextBlock内容的末尾位置。
  • Typography: 控制文本的排版变体。
  • FontStretch: 控制文本的拉伸特征,例如Condensed、Expanded等。
  • BaselineOffset: 设置文本每行相对于基线的偏移量。
  • FontSize: 设置文本的字号大小。
  • TextWrapping: 控制文本的换行方式,可以设置为NoWrap、Wrap等。
  • Background: 设置TextBlock的背景颜色。
  • TextEffects: 应用于文本内容的效果,例如阴影、发光等。
  • LineHeight: 设置每行文本的高度。
  • Padding: 设置文本内容与TextBlock边界之间的填充空间。
  • TextAlignment: 控制文本的水平对齐方式,可以设置为Left、Right、Center等。
  • TextTrimming: 在内容超出内容区域时采用的文本剪裁行为,可以设置为None、CharacterEllipsis等。
  • Foreground: 设置文本的前景色,即文本的颜色。
  • Inlines: 一个集合,用于存储内联流内容元素,例如Run对象,可以单独设置每个Run的样式。
  • ContentStart: 获取TextBlock内容的起始位置。

例子:

<Window x:Class="WpfApp2.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.microsoft.com/expression/blend/2008"xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"xmlns:local="clr-namespace:WpfApp2"mc:Ignorable="d"Title="学习之路" Height="450" Width="800"><WrapPanel Margin="10"><!-- 使用Label显示静态文本 --><TextBlock Text="这是一个TextBlock文字块" Margin="5"/><!-- 粗体、斜体、字体、字号 --><TextBlock FontWeight="Bold" Text="粗体文字" Margin="5"/><TextBlock FontStyle="Italic" Text="斜体文字" Margin="5"/><TextBlock FontFamily="Microsoft YaHei UI" Text="微软雅黑" Margin="5"/><TextBlock FontSize="30" Text="大号字体" Margin="5"/><!-- 文本颜色、背景颜色 --><TextBlock Foreground="Red" Text="红色文字" Margin="5"/><TextBlock Foreground="Yellow" Background="Red" Text="底色文字" Margin="5"/><!-- 内间距 --><TextBlock Foreground="Yellow" Background="Red" Text="内间距文字" Padding="10" Margin="5"/><!-- 使用Run设置不同颜色的文本 --><TextBlock Background="LightGray" Height="25" Margin="5"><Run Foreground="Red">这行文字</Run><Run Foreground="Green">由三部分</Run><Run Foreground="Blue">组成</Run></TextBlock><!-- 文本换行 --><Grid Width="150" Height="100" Background="LightGoldenrodYellow" Margin="5"><TextBlock TextWrapping="Wrap" Margin="10" Text="这段文字体现了文字的文本换行属性TextWrapping"/></Grid><!-- 使用Run设置复杂样式的文本 --><Grid Margin="5"><TextBlock Width="320" Height="100" FontSize="15" FontFamily="微软雅黑" FontWeight="Black" Foreground="#dddddd" Background="Teal" TextAlignment="Center" TextWrapping="Wrap" TextTrimming="CharacterEllipsis" Margin="10" Padding="5"><Run Foreground="#CDB632" TextDecorations="Underline">滚滚长江东逝水,浪花淘尽英雄。</Run><Run>白发渔樵江渚上,惯看秋月春风。</Run></TextBlock></Grid></WrapPanel>
</Window>

TextBox文本框

TextBox 控件是 WPF 中用于接受用户输入文本的常用控件之一。它继承自 TextBoxBase,而 TextBoxBase 则继承自 Control。

TextBoxBase基类

TextBoxBase 基类提供了以下属性:

  • VerticalScrollBarVisibility: 获取或设置垂直滚动条是否可见。
  • HorizontalScrollBarVisibility: 获取或设置水平滚动条是否可见。
  • AcceptsReturn: 获取或设置一个值,指示在文本框中按下回车键时是否添加新行。
  • AcceptsTab: 获取或设置一个值,指示在文本框中按下 Tab 键时是否插入制表符。
  • IsReadOnlyCaretVisible: 获取或设置一个值,指示只读文本框中的插入符是否可见。
  • SelectionOpacity: 获取或设置用户选中文本时的透明度。
  • IsUndoEnabled: 获取或设置一个值,指示文本框是否启用撤销支持。
  • UndoLimit: 获取或设置撤销队列中存储的操作数目限制。
  • AutoWordSelection: 获取或设置一个值,指示是否自动选择字词。
  • SelectionBrush: 获取或设置用户选择文本时的画刷。
  • IsReadOnly: 获取或设置一个值,指示文本框是否只读。
  • CaretBrush: 获取或设置用于绘制文本框中插入符的画刷。
  • IsInactiveSelectionHighlightEnabled: 获取或设置一个值,指示当文本框没有焦点时是否显示选定文本的高亮显示。

TextBoxBase 基类还提供了以下事件:

  • TextChanged: 每当文本框中的文本内容发生更改时触发。可以用于监视文本的实时变化,执行验证逻辑或者处理其他业务逻辑。
  • SelectionChanged: 当文本框中的选定文本范围发生更改时触发。可以用于检测用户选择文本的变化,并在需要时进行相应的处理。

TextBox控件

TextBox 类还提供了以下属性:

  • MinLines: 获取或设置 TextBox 控件的最小可见行数。
  • MaxLines: 获取或设置 TextBox 控件的最大可见行数。
  • CharacterCasing: 获取或设置 TextBox 控件中字符的大小写形式。可以设置为 Normal、Lower 或 Upper。
  • MaxLength: 获取或设置 TextBox 控件中允许手动输入的最大字符数。
  • TextAlignment: 获取或设置 TextBox 控件中文本的水平对齐方式,例如左对齐、右对齐、居中对齐和两端对齐。
  • CaretIndex: 获取或设置插入点的插入位置索引。
  • SelectionLength: 获取或设置当前所选内容中的字符数。
  • SelectionStart: 获取或设置当前所选内容的起始位置的字符索引。
  • Typography: 获取 TextBox 控件中的文本内容的当前有效版式变体。
  • LineCount: 获取 TextBox 控件中的总行数。
  • TextDecorations: 获取应用于 TextBox 控件中文本的文本修饰。
  • SelectedText: 获取或设置 TextBox 控件中当前选择的内容。
  • TextWrapping: 获取或设置 TextBox 控件中文本的换行方式。

TextBox文本框本身没有任务事件,都是继承父类的事件。

例子:

<Window x:Class="WpfApp2.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.microsoft.com/expression/blend/2008"xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"xmlns:local="clr-namespace:WpfApp2"mc:Ignorable="d"Title="学习之路" Height="450" Width="800"><Grid Margin="20"><Grid.RowDefinitions><RowDefinition Height="Auto"/><RowDefinition Height="Auto"/><RowDefinition Height="Auto"/><RowDefinition Height="Auto"/></Grid.RowDefinitions><!-- 第一个文本框 --><TextBox x:Name="textBox1" Grid.Row="0" Margin="5" Width="200" TextAlignment="Center" Text="请输入姓名"GotFocus="TextBox_GotFocus" LostFocus="TextBox_LostFocus"/><!-- 只读文本框 --><TextBox x:Name="textBox2" Grid.Row="1" Margin="5" Width="200" Text="只读文本框" IsReadOnly="True"/><!-- 可以输入多行文本的文本框 --><TextBox x:Name="textBox3" Grid.Row="2" Margin="5" Width="200" Height="80" TextWrapping="Wrap"Text="这是一个可以输入多行文本的 TextBox 控件,你可以在这里输入多行文本。"GotFocus="TextBox_GotFocus" LostFocus="TextBox_LostFocus"/><!-- 限制输入长度的文本框 --><TextBox x:Name="textBox4" Grid.Row="3" Margin="5" Width="200" MaxLength="10" Text="最多输入10个字符"GotFocus="TextBox_GotFocus" LostFocus="TextBox_LostFocus"/></Grid>
</Window>
using System.Windows;
using System.Windows.Controls;namespace WpfApp2
{public partial class MainWindow : Window{public MainWindow(){InitializeComponent();}private void TextBox_GotFocus(object sender, RoutedEventArgs e){TextBox? textBox = sender as TextBox;if (textBox != null){// 清空文本框textBox.Text = "";}}private void TextBox_LostFocus(object sender, RoutedEventArgs e){TextBox? textBox = sender as TextBox;if (textBox != null){// 还原文本框if (textBox == textBox1){textBox.Text = "请输入姓名";}else if (textBox == textBox3){textBox.Text = "这是一个可以输入多行文本的 TextBox 控件,你可以在这里输入多行文本。";}else if (textBox == textBox4){textBox.Text = "最多输入10个字符";}}}}
}

RichTextBox富文本框

RichTextBox 提供了比 TextBox 更丰富的文档编辑功能。它允许用户创建和编辑包含格式、图像、超链接等丰富内容的文档。与简单的 TextBox 不同,RichTextBox 具有更多的属性、方法和事件,使用户能够更灵活地编辑文本内容。

RichTextBox 控件的结构定义包含以下重要成员:

构造函数:

  • public RichTextBox();:无参构造函数用于创建 RichTextBox 控件的实例。
  • public RichTextBox(FlowDocument document);:带有 FlowDocument 参数的构造函数,用于创建 RichTextBox 控件并指定初始文档内容。

属性:

  • public FlowDocument Document { get; set; }:获取或设置 RichTextBox 控件的文档内容,文档类型为 FlowDocument。
  • public bool IsDocumentEnabled { get; set; }:获取或设置一个值,指示是否启用 RichTextBox 的文档模式。
  • public TextSelection Selection { get; }:获取当前文本选择的对象。
  • public TextPointer CaretPosition { get; set; }:获取或设置 RichTextBox 控件中插入符的位置。

方法:

  • public TextPointer GetNextSpellingErrorPosition(TextPointer position, LogicalDirection direction);:获取指定位置之后(或之前)的下一个拼写错误的位置。
  • public TextPointer GetPositionFromPoint(Point point, bool snapToText);:根据指定的屏幕坐标获取 RichTextBox 中的文本位置。
  • public SpellingError GetSpellingError(TextPointer position);:获取指定位置处的拼写错误。
  • public TextRange GetSpellingErrorRange(TextPointer position);:获取包含指定位置的拼写错误的文本范围。
  • public bool ShouldSerializeDocument();:指示是否应序列化文档属性。

其他成员:

  • protected internal override IEnumerator LogicalChildren { get; }:获取 RichTextBox 控件的逻辑子元素的枚举器。
  • protected override Size MeasureOverride(Size constraint);:重写的用于测量控件大小的方法。
  • protected override AutomationPeer OnCreateAutomationPeer();:创建 RichTextBox 控件的自动化对等体。
  • protected override void OnDpiChanged(DpiScale oldDpiScaleInfo, DpiScale newDpiScaleInfo);:处理 DPI 变化的方法。

例子:

<Window x:Class="WpfApp2.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.microsoft.com/expression/blend/2008"xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"xmlns:local="clr-namespace:WpfApp2"mc:Ignorable="d"Title="学习之路" Height="450" Width="800"><Grid><RichTextBox x:Name="richTextBox" Margin="10"><FlowDocument><Paragraph><Run FontWeight="Bold">这是一个 RichTextBox 示例</Run></Paragraph><Paragraph><Run>RichTextBox 在 WPF 中提供了先进的文本编辑功能。</Run></Paragraph><Paragraph><Run>您可以在 RichTextBox 中添加中文文本,并且可以使用不同的字体、样式、颜色等。</Run></Paragraph></FlowDocument></RichTextBox></Grid>
</Window>

ToolTip控件(提示工具)

ToolTip 控件继承自 ContentControl,用于显示提示信息。但ToolTip 不能单独存在于 WPF 的视觉树上,必须依附于另一个控件。当鼠标移动到依附的控件上方并悬停一段时间时,ToolTip 将显示其内容。ToolTip 的内容可以是任何类型,包括文本、图像、甚至其他控件。要为控件添加 ToolTip,可以使用控件的 ToolTip 属性,并设置其内容为想要显示的内容。

ToolTip控件的主要成员包括:

属性:

  • IsOpen:获取或设置一个值,指示 ToolTip 是否处于打开状态。
  • StaysOpen:获取或设置一个值,指示 ToolTip 是否始终保持打开状态。
  • CustomPopupPlacementCallback:获取或设置自定义的弹出位置回调函数。
  • Placement:获取或设置 ToolTip 相对于其目标的位置。
  • PlacementRectangle:获取或设置 ToolTip 相对于屏幕的位置和大小。
  • PlacementTarget:获取或设置包含 ToolTip 的 UI 元素。
  • HorizontalOffset:获取或设置 ToolTip 相对于其内容的水平偏移量。
  • VerticalOffset:获取或设置 ToolTip 相对于其内容的垂直偏移量。
  • HasDropShadow:获取或设置一个值,指示是否为 ToolTip 显示阴影效果。

事件:

  • Opened:当 ToolTip 打开时发生。
  • Closed:当 ToolTip 关闭时发生。

例子:

<Window x:Class="WpfApp2.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.microsoft.com/expression/blend/2008"xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"xmlns:local="clr-namespace:WpfApp2"mc:Ignorable="d"Title="学习之路" Height="450" Width="800"><Grid><!-- 定义一个按钮,并设置ToolTip --><Button Content="Hover Me" HorizontalAlignment="Center" VerticalAlignment="Center"><Button.ToolTip><!-- ToolTip 的内容可以是任意的,这里设置为一个文本字符串 --><ToolTip Content="This is a ToolTip."/></Button.ToolTip></Button></Grid>
</Window>

Popup弹出窗口

Popup控件在WPF中用于在指定的元素或窗体中弹出一个具有任意内容的窗口。opup继承于FrameworkElement,算得上是独门独户的控件,因为大多数控件都是从Shape、Control或Panel三个类继承而来。与ToolTip不同,Popup可以显示更复杂的内容,包括自定义的用户界面。Popup通常用于创建自定义的弹出菜单、弹出提示、上下文菜单等交互式功能。

下面是对Popup控件主要属性和事件的说明:

属性成员:

  • HasDropShadow: 只读属性,指示控件是否具有投影效果。
  • AllowsTransparency: 获取或设置一个值,指示控件是否包含透明内容。
  • PopupAnimation: 获取或设置控件打开或关闭时的动画效果。可以是None、Fade、Slide、Scroll等不同类型的动画。
  • PlacementRectangle: 获取或设置控件打开时的矩形位置。
  • PlacementTarget: 获取或设置Popup控件在哪个控件旁边打开,这个属性是Popup控件打开的相对位置。
  • VerticalOffset: 获取或设置目标原点和Popup控件对齐点之间的垂直距离。
  • HorizontalOffset: 获取或设置目标原点和Popup控件对齐之间的水平距离。
  • StaysOpen: 默认值为true,表示Popup打开后,如果失去焦点,Popup是否继续显示。
  • Child: 获取或设置Popup控件的内容,类似于ContentControl的Content属性,但是Popup的内容只能是一个元素。
  • IsOpen: 获取或设置Popup控件是否可见。
  • Placement: 枚举类,表示Popup控件显示时的对齐方式。

事件成员:

  • Opened事件: 当Popup控件打开时引发的事件。
  • Closed事件: 当Popup控件关闭时引发的事件。

例子:

<Window x:Class="WpfApp2.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.microsoft.com/expression/blend/2008"xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"xmlns:local="clr-namespace:WpfApp2"mc:Ignorable="d"Title="学习之路" Height="450" Width="800"><StackPanel Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center"><CheckBox x:Name="checkbox" Content="显示菜单" Height="30" Margin="5" ToolTip="显示菜单" Checked="checkbox_Checked"/><Popup Name="myPopup" IsOpen="{Binding IsChecked, ElementName=checkbox}" PlacementTarget="{Binding ElementName=checkbox}" StaysOpen="True"><Border BorderThickness="1" Background="LightBlue"><StackPanel><Button Content="选项 1" Click="MenuItem_Click"/><Button Content="选项 2" Click="MenuItem_Click"/><Button Content="选项 3" Click="MenuItem_Click"/></StackPanel></Border></Popup></StackPanel>
</Window>
using System.Windows;
using System.Windows.Controls;namespace WpfApp2
{public partial class MainWindow : Window{public MainWindow(){InitializeComponent();}private void MenuItem_Click(object sender, RoutedEventArgs e){Button clickedButton = sender as Button; // 获取被点击的按钮// 根据按钮的内容执行不同的操作或显示不同的信息switch (clickedButton.Content.ToString()){case "选项 1":MessageBox.Show("选项 1 被点击了");myPopup.IsOpen = false; // 选择选项后关闭弹出菜单break;case "选项 2":MessageBox.Show("选项 2 被点击了");myPopup.IsOpen = false; // 选择选项后关闭弹出菜单break;case "选项 3":MessageBox.Show("选项 3 被点击了");myPopup.IsOpen = false; // 选择选项后关闭弹出菜单break;default:// 默认情况下,如果按钮内容不匹配任何选项,显示默认信息MessageBox.Show("未知选项被点击了");break;}}// checkbox_Checked事件处理程序private void checkbox_Checked(object sender, RoutedEventArgs e){CheckBox? checkBox = sender as CheckBox;if (checkBox.IsChecked == true){myPopup.IsOpen = true; // 当复选框被选中时,打开Popup}else{myPopup.IsOpen = false; // 当复选框被取消选中时,关闭Popup}}}
}

Image图像控件

Image控件是用于显示图像的控件,它继承自FrameworkElement基类。可以使用Image控件来显示各种图像格式,如.bmp、.gif、.ico、.jpg、.png、.wdp 和 .tiff。

在加载.gif动画图片时,WPF默认只显示第一帧。如果需要在WPF中显示.gif动画,可以通过使用第三方库,例如WpfAnimatedGif库来实现。这个库可以让WPF中显示.gif动画图片,而不仅仅是第一帧。您可以通过NuGet来安装WpfAnimatedGif库。

属性成员

1、StretchDirection

说明:枚举类型,表示图像在缩放时的方向条件。可以是以下值之一:

  • UpOnly:表示图像仅在小于父级尺寸时进行缩放。
  • DownOnly:表示图像仅在大于父级尺寸时进行缩放。
  • Both:表示图像可以在满足上述两种条件下进行缩放。

2、Stretch

说明:枚举类型,表示图像的缩放模式。可以是以下值之一:

  • None:保持图像原始大小。
  • Fill:调整图像大小以填充目标尺寸,且不保留纵横比。
  • Uniform:在保持纵横比的前提下缩放图像。
  • UniformToFill:在保持纵横比的前提下缩放图像,同时可以进行裁剪。

3、Source 说明:图像的源,类型为ImageSource。

4、BaseUri 说明:获取或设置图像的基本统一资源标识符(URI)。

事件成员

  • DpiChanged :当显示图像的屏幕的 DPI 发生更改时触发。
  • ImageFailed :在图像加载失败时触发。

例子:

<Window x:Class="WpfApp2.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.microsoft.com/expression/blend/2008"xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"xmlns:local="clr-namespace:WpfApp2"mc:Ignorable="d"Title="学习之路" Height="450" Width="800"><Grid><Image Width="200" Height="150" Stretch="Uniform" Source="/Images/meimei.png" /></Grid>
</Window>

注意:一定要将图片属性改成始终复制

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.bcls.cn/UlAN/9935.shtml

如若内容造成侵权/违法违规/事实不符,请联系编程老四网进行投诉反馈email:xxxxxxxx@qq.com,一经查实,立即删除!

相关文章

Maven【4】(继承)(命令行操作)

文章目录 【1】基础概念【2】继承的作用【3】创建父工程和子工程【4】在父工程中统一管理依赖 【1】基础概念 说到继承&#xff0c;我们很容易想到Java中的继承&#xff0c;有子类和父类&#xff0c;子类继承父类&#xff0c;那么我们maven中的继承是什么呢&#xff1f; Maven…

海外媒体推广发稿平台之选快速提升品牌知名度的8个方法-华媒舍

随着全球化趋势的加深&#xff0c;海外市场对于企业来说变得越来越重要。在海外媒体上宣传品牌是提升知名度和开拓新客户的关键步骤。本文将为您介绍8个使用海外媒体推广发稿平台来快速提升品牌知名度的秘籍。 1. 选择可信赖的平台 在选择推广发稿平台时&#xff0c;首先要确保…

化妆品汞含量检测FDA 21 CFR700.13 标准

化妆品汞含量检测FDA 21 CFR700.13 标准 化妆品汞含量检测FDA 21 CFR700.13 标准 汞是一种有毒的元素&#xff0c;在化妆品中是一种禁用的成分。然而&#xff0c;汞在一些非正规的产品中仍然存在&#xff0c;给消费者的健康带来了潜在的危害。因此&#xff0c;对于化妆品生产企…

正向代理的反爬虫与防DDoS攻击:保护网站免受恶意行为

目录 前言 一、正向代理的原理 二、正向代理的反爬虫功能 1. IP地址隐藏 2. 请求多样化 三、正向代理的防DDoS攻击功能 1. 均衡负载 2. IP过滤 结论 前言 在当前互联网环境下&#xff0c;网站常常受到各种恶意行为的侵袭&#xff0c;其中包括爬虫和DDoS攻击。这些行为…

Android java基础_异常

一.异常的概念 在Java中&#xff0c;异常&#xff08;Exception&#xff09;是指程序执行过程中可能出现的不正常情况或错误。它是一个事件&#xff0c;它会干扰程序的正常执行流程&#xff0c;并可能导致程序出现错误或崩溃。 异常在Java中是以对象的形式表示的&#xff0c;…

我的NPI项目之设备系统启动(八) -- Android14的GKI2.0开发步骤和注意事项

GKI是什么&#xff1f; Google为什么要推行GKI&#xff1f; GKI全称General Kernel Image。GKI在framework和kernel之间提供了标准接口&#xff0c;使得android OS能够轻松适配/维护/兼容不同的设备和linux kernel。 Google引入GKI的目的是将Framework和Kernel进一步的解耦。因…

Peter算法小课堂—动态规划

Peter来啦&#xff0c;好久没有更新了呢 今天&#xff0c;我们来讨论讨论提高组的动态规划。 动态规划 动态规划有好多经典的题&#xff0c;有什么背包问题、正整数拆分、杨辉三角……但是&#xff0c;如果考到陌生的题&#xff0c;怎么办呢&#xff1f;比如说2000年提高组的…

Nacos配置

目录 启动nacos 项目步骤 Nacos服务分级存储模型​编辑 服务跨域集群调用问题 NacosRule负载均衡 服务实例的权重设置 环境隔离-namespace Nacos环境隔离 Nacos和Eureak对比 临时实例和非临时实例 Ncaos与Eureka的共同点 Nacos与Eureka的区别 Nacos配置管理 统一配…

我承认,我低估鸿蒙了 !

2019年&#xff0c;鸿蒙刚出来的时候&#xff0c;我心里是有点犯嘀咕的&#xff0c;虽然很支持国产操作系统&#xff0c;但是我知道&#xff0c;开发操作系统也许不难&#xff0c;但是建立一个全新的生态太难了&#xff01; 如果操作系统中缺乏应用程序&#xff0c;就不会有人…

排序——希尔排序

希尔排序 希尔排序步骤 希尔排序的核心还是插入排序&#xff0c;但是把插入排序分成两部分&#xff0c;1.预排序2.插入排序。先对原数组进行预排序&#xff0c;使数组接近有序&#xff08;让更大的数字和更小的数字更快的分配到两边&#xff09;&#xff0c;然后再对已经接近有…

模拟算法题练习(二)(DNA序列修正、无尽的石头)

目录 &#xff08;一、DNA序列修正&#xff09; 问题分析 方法实现 时间复杂度和空间复杂度分析 &#xff08;二、无尽的石头&#xff09; &#xff08;一、DNA序列修正&#xff09; 问题描述 在生物学中&#xff0c;DNA序列的相似性常被用来研究物种间的亲缘关系。现在我…

MySQL深入——22

kill不掉的语句 在MySQL当中有两个kill命令一个是kill query 线程id表示中止这个线程当中正在执行的语句&#xff0c;另外一个是 kill Connection线程id表示断开这个连接。 在使用MySQL时&#xff0c;使用kill命令之后看show processlist显示的command列为killed&#xff0c;…

《最新出炉》系列初窥篇-Python+Playwright自动化测试-34-处理https 安全问题或者非信任站点-下篇

1.简介 这一篇宏哥主要介绍playwright如何在IE、Chrome和Firefox三个浏览器上处理不信任证书的情况&#xff0c;我们知道&#xff0c;有些网站打开是弹窗&#xff0c;SSL证书不可信任&#xff0c;但是你可以点击高级选项&#xff0c;继续打开不安全的链接。举例来说&#xff0c…

自动化测试摸索:python+selenium+pytest(持续更新.....)

一、环境搭建 1、python 安装 下载链接&#xff1a;Python Releases for Windows | Python.org 自己选择合适的版本下载 当下载完毕时&#xff0c;找到该安装程序&#xff1a;python-3.12.2-amd64.exe文件&#xff0c;双击启动安装向导。 为了防止C:盘文件因系统故障或者无…

CDN原理探究

来源于百度&#xff1a; https://baike.baidu.com/item/%E5%86%85%E5%AE%B9%E5%88%86%E5%8F%91%E7%BD%91%E7%BB%9C/4034265?frge_ala 通过上图&#xff0c;我们可以了解到&#xff0c;使用了CDN缓存后的网站的访问过程变为&#xff1a; 用户向浏览器提供要访问的域名&#xff…

unsigned详讲(干货满满)

前言&#xff1a;过年偷懒了(●ˇ∀ˇ●)&#xff0c;但是年后开学了一定要恢复学习状态&#xff0c;在复习加继续学习的途中&#xff0c;我发现对于unsigned关键字的掌握并不是很熟练&#xff0c;于是翻阅了各个大佬的博客以及书籍&#xff0c;总结了对于unsigned的一些知识点…

pip降级在pycharm中

PyCharm依赖于"–build-dir"参数安装第三方库&#xff0c;但该参数在最新的23.0版pip中已删除 解决办法就是降级pip&#xff0c;PyCharm中选择File&#xff0c;找到编译器&#xff0c;点击pip&#xff0c;勾选对应版本即可 或者在cmd中执行运行python -m pip install…

大语言模型推理加速技术:计算加速篇

原文&#xff1a;大语言模型推理加速技术&#xff1a;计算加速篇 - 知乎 目录 简介 Transformer和Attention 瓶颈 优化目标 计算加速 计算侧优化 KVCache Kernel优化和算子融合 分布式推理 内存IO优化 Flash Attention Flash Decoding Continuous Batching Page…

Redis冲冲冲——事务支持,AOF和RDB持久化

目录 引出Redis事务支持&#xff0c;AOF和RDB持久化1、Redis的事务支持2、Redis的持久化 Redis冲冲冲——缓存三兄弟&#xff1a;缓存击穿、穿透、雪崩缓存击穿缓存穿透缓存雪崩 总结 引出 Redis冲冲冲——事务支持&#xff0c;AOF和RDB持久化 Redis事务支持&#xff0c;AOF和…

Mybatis批量更新对象数据的两种方法

说明&#xff1a;遇到一次需要批量修改对象的场景。传递一个对象集合&#xff0c;需要根据对象ID批量修改数据库数据&#xff0c;使用的是MyBatis框架。查了一些资料&#xff0c;总结出两种实现方式。 创建Demo 首先&#xff0c;创建一个简单的Demo&#xff1b; &#xff08…
推荐文章