![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
WPF
文章平均质量分 61
Bridge_go
这个作者很懒,什么都没留下…
展开
-
WPF(图像转换)
在Winform中图片大多数都是 System.Drawing.Bitmap,而在WPF中图像大多都是以System.Windows.Media.Imaging.BitmapFrame 或者System.Windows.Media.Imaging.BitmapImage存在(其实是以System.Windows.Media.Imaging.BitmapFrameDecode存在,但是不能获取到该对象)。System.Windows.Media.Imaging.BitmapSource 转换为 Sys.原创 2021-10-28 16:25:56 · 953 阅读 · 0 评论 -
WPF(Winform)
Winform中调用WPF1.打开窗体在winform项目中添加引用:PresentationCore PresentationFramework WindowsBase然后添加相应的WPF程序,就可以通过 Show()方法打开窗体。但是这样打开的窗体不能够接收键盘的输入(若是模态的窗口,即对话框的形式,就可以不用考虑下面的),还需要添加WindowsFormsIntegration 引用。MainWindow mainWindow = new MainWindow();S..原创 2021-10-26 11:34:56 · 255 阅读 · 0 评论 -
WPF(命令)
WPF命令模型具有如下4个重要元素:命令:命令表示应用程序任务,并且跟踪任务是否能够执行。然而,命令实际上不包含执行应用程序任务的代码。 命令绑定:每个命令绑定针对用户界面的具体局域,将命令连接到相关的应用程序逻辑。这种分解的设计非常重要,因为单个命令可用于应用程序中的多个地方,并且在每个地方具有不同的意义。为处理这一问题,需要将通一命令与不同的命令绑定。 命令源:命令源触发命令。例如,MenuItem 和 Button 都是命令源,单击它们都会执行绑定命令。 命令目标:命令目标是在其中执行命令的原创 2021-10-25 17:27:18 · 341 阅读 · 0 评论 -
WPF(路由事件)
路由事件是具有更强传播能力的事件——它们可在元素树中向上冒泡和向下隧道传播,并且沿着传播路径被事件处理程序处理。路由事件允许事件在某个元素上被处理,即使该事件源自另一个元素也是如此。 路由事件以以下三种方式出现:与普通.Net事件类似的直接路由事件(direct event)。它们源自一个元素,不传递给其他元素。例如,MouseEnter事件是直接路由事件(当鼠标指针移到元素上时发生)。 在包含层次中向上传递的冒泡路由事件(bubbling event)。例如,Mouse...原创 2021-10-22 14:01:21 · 938 阅读 · 0 评论 -
WPF (逻辑树和可视化树)
WPF中有两中“树”:一种叫逻辑树(Logical Tree);一种叫可视化元素树(Visual Tree)。 Logical Tree 最显著的特点就是它完全由布局组件和控件构成(包括列表类控件中的条目元素),换句话说就是它的每个节点不是布局组件就是控件。那什么是 Visual Tree 呢?我们知道,如果把一片树叶放在放大镜下观察,你会发现这片叶子也像一棵树一样——有自己的基部并向上生长出多级分叉。 在WPF的Logical Tree 上,充当叶子的...原创 2021-10-20 18:29:01 · 2012 阅读 · 0 评论 -
WPF(特殊字符与空白)
一、特殊字符 XAML受到XML规则的限制。例如,XML特别关注的一些特殊字符,如&、<、>。如果试图使用这些字符设置元素的内容,将会遇到麻烦,因为XAML解析器认为你正在处理其他事情———例如创建嵌套的元素。 解决问题的方法是用实体引用代替那些特殊字符,实体引用是XAML解析器能够正确解释的特定字符编码。注意,只有当使用特性设置属性值时,才需要使用引号字符实体,因为引号用于指示特性值的开始和结束。XAML字符实体 特殊字符 字符实体 小...原创 2021-10-20 11:31:46 · 1179 阅读 · 0 评论 -
WPF(资源调用)
资源初步认识https://blog.csdn.net/breakbridge/article/details/116271634一、资源键大多少时候我们定义一个资源都是将其Key设置为一个字符串,但有时候我们也可以将Key设置为ComponentResourceKey对象。<Application x:Class="WpfAppResource1.App" xmlns="http://schemas.microsoft.com/winfx/2006/xa...原创 2021-10-19 15:17:39 · 1228 阅读 · 0 评论 -
WPF(DataGid学习)
先看两张图,一个实现自己的效果,一个使用默认的效果:原创 2021-10-13 11:27:32 · 453 阅读 · 0 评论 -
WPF控件从创建到显示
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows;using System.Windows.Controls;using System.Windows.Media;public class TextBoxTime : TextBox{ public TextBoxTi.原创 2021-09-29 11:18:57 · 190 阅读 · 0 评论 -
WPF(继承)
1.IValueConverter 接口提供将自定义逻辑应用于绑定的方法。using System;using System.Globalization;using System.IO;using System.Windows.Data;using System.Windows.Media.Imaging;using System.Data;[ValueConversion(typeof(string), typeof(Enum))]public class EnumConver.原创 2021-09-13 16:18:53 · 311 阅读 · 0 评论 -
WPF遍历TreeView
TreeView TreeView中的Item有两种选择,要么是TreeViewItem,要么不是TreeViewItem。只有在TreeViewItem中才能继续添加元素,以此往复。TreeViewItem中IsExpanded表示是否展开,IsSelected表示是否选中。通过下述方法可以将TreeView所有项展开或者收起: private static void ExpandAllItems(ItemsControl control, bool isExpande...原创 2021-09-08 19:42:23 · 938 阅读 · 0 评论 -
WPF(自适应圆)
在WPF中可以实现椭圆,利用Ellipse或者Border。但是要实现圆,就必须设定固定的长宽,然后根据长宽设置对应的倒角才可以实现圆。如果这样设计,就固定了长宽,不能根据界面自适应调整。下面实现一个自适应界面的圆按钮:using System;using System.Globalization;using System.Windows.Data;[ValueConversion(typeof(double), typeof(double[]))]public cla...原创 2021-08-27 21:06:10 · 857 阅读 · 0 评论 -
WPF(元素变换)
通过使用变换(transform),许多绘图认为将更趋简单。变换是通过不加通告地切换形状或元素使用的坐标系统来改变形状或元素绘制方式的对象。变化形状有两种方式:RenderTransform和LayoutTransform。这里主要讲诉这两种方式的区别:在StackPanel中放置两个Button,不添加任何变换:<UserControl x:Class="WpfApp3.UserControl3" xmlns="http://sc...原创 2021-08-18 20:31:03 · 139 阅读 · 0 评论 -
WPF(颜色突变)
我们知道可以用LinearGradientBrush实现颜色的渐变,如下图,从Red渐变到Blue:<Border Grid.Row="1" BorderBrush="Black" BorderThickness="5" CornerRadius="20" > <Border.Background> <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"> .原创 2021-08-16 17:35:53 · 91 阅读 · 0 评论 -
WPF(附加属性和依赖属性)
让一个属性即可作为依赖属性使用也可作为附加属性使用例如:TextBlock.FontSize<Window x:Class="WpfApp3.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http:..原创 2021-08-13 14:44:21 · 629 阅读 · 0 评论 -
WPF(通用转换器)
1.MathConverter有时候我们想在XAML中对绑定的数据进行转换,就需要这个转换器了。这个控制包可以使字符串进行数据运算。using System;using System.Globalization;using System.Windows.Data;using NCalc;[ValueConversion(typeof(decimal), typeof(string))]public class MathConverter : IValueConv..原创 2021-07-28 14:19:31 · 527 阅读 · 0 评论 -
WPF(滚动条)
ScrollBar控件出奇复杂。它实际上是一个由更小部分组成的集合。 滚动条的背景由Track类表示(实际上是一个具有阴影并且被拉伸占满整个滚动条长度的矩形)。滚动条的末尾处是按钮,通过这些按钮可以向上或向下(或向左或向右)滚动一个步长。这些按钮是RepeatButton类的实例,该类继承自ButtonBase类。RepeatButton类和普通Button类之间的重要区别在于,如果在RepeatButton按钮上保持鼠标按下的状态,就会反复触发Click事件。 在滚动...原创 2021-07-28 10:40:53 · 2958 阅读 · 0 评论 -
WPF(行为)
样式提供了重用一组属性设置的实用方法。它们为帮助构建一致的、组织良好的界面迈出了重要的一步----但是它们还有许多限制。 问题是在典型的应用程序中,属性设置仅是用户界面基础结构的一小部分。甚至最基本的程序通常也需要大量的用户界面代码,这些代码与应用程序的功能无关。许多这类代码都是通用的,这意味着在创建的每个WPF对象中需要编写相同的内容。所有这些工作几乎都是单调乏味的。 行为:其思想很简单,创建封装了一些通用用户界面功能的行为。一旦构建完成,就可将它们添加...原创 2021-07-14 14:17:39 · 308 阅读 · 0 评论 -
WPF(自定义)
1.附加属性namespace WpfDll{ using System.Windows; using System.Windows.Media; /// <summary> /// 将旋转角度变为附加属性设置 /// </summary> public class RotationManager : DependencyObject { public static readonly Depend.原创 2021-06-21 10:17:46 · 566 阅读 · 1 评论 -
WPF(数据更新)
<Window x:Class="WpfApp1.Window1" Title="Window1" 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" xmln.原创 2021-06-18 14:15:03 · 254 阅读 · 0 评论 -
WPF(多样式)
XAML能不能像HTML一样可以对元素应用多个样式呢???默认的情况下是不可以的,下面将讲述两种通过其他方法实现同时应用多个样式的例子。1.BasedOn通过继承相当于拥有两种样式。<Window x:Class="WpfAppLearn2.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.mic..原创 2021-05-13 11:48:45 · 418 阅读 · 0 评论 -
WPF(数据绑定)
数据绑定把数据从.NET对象传递给UI,或从UI传递给.NET对象。简单对象可以绑定到UI元素、对象列表和XAML元素上。在WPF数据绑定中,目标可以是WPF元素的任意依赖属性,CLR对象的每个属性都可以绑定源。因为WPF元素作为.NET类实现,所以每个WPF元素也可以用作绑定源。Binding对象支持源与目标之间的几种绑定模式。绑定可以是单向的,即从源信息指向目标,但如果用户在用户界面上修改了该信息,则源不会更新。要更新源,需要双向绑定。绑定模式 说明 一次性 绑定从源指向目标,.原创 2021-05-12 14:44:32 · 607 阅读 · 0 评论 -
WPF(动画)
在动画中,可以使用移动的元素、颜色变化、变换等制作平滑的变换效果。WPF使动画的制作非常简单。还可以连续改变任意依赖属性的值。不同的动画类可以根据其类型,连续改变不同属性的值。动画的主要元素如下:时间轴---定义了值随时间的变化方式。有不同类型的时间轴,可用于改变不同类型的值。所有时间轴的基类都是Timeline。为了连续改变double值,可以使用DoubleAnimation类。Int32Animation类是int值的动画类。PointAnimation类用于连续改变点,ColorAnimat原创 2021-05-10 18:19:00 · 619 阅读 · 0 评论 -
WPF(代码实现XAML)
将下述的XAML通过代码实现:<Window x:Class="WpfAppLearn1.Window3" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expressio.原创 2021-05-10 10:36:50 · 427 阅读 · 0 评论 -
WPF(触发器)
使用触发器,可以动态地更改控件的外观,因为一些事件或属性值改变了。通常这都必须在代码中实现,使用WPF,也可以用XAML实现,而这只会影响UI。1.属性触发器属性触发器在属性值改变时激活。Style类有一个Triggers属性,通过它可以指定属性触发器。<Window x:Class="WpfAppLearn1.Window4" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"原创 2021-05-06 14:23:35 · 648 阅读 · 0 评论 -
WPF(资源)
之前讲过直接设置元素的样式,但是直接设置对于样式的共享没有什么帮助。样式可以放在资源中。在资源中,可以把样式赋予指定的元素,把一个样式赋予某一类型的所有元素,或者为该样式使用一个键。要把样式赋予某一个类型的所有元素,可使用Style的TargetType属性,指定x:Type标记扩展{x:Type Button},从而将样式赋予一个按钮。要定义需要引用的样式,必须设置x:Key:<Window x:Class="WpfAppLearn1.Window3" xmlns="http原创 2021-04-29 16:50:57 · 729 阅读 · 0 评论 -
WPF(样式)
设置Button元素的FontSize和Background属性,就可以定义WPF元素的外观,如Button元素所示:<Button Content="Button" Width="75" Canvas.Left="350" Canvas.Top="148" Background="Pink" Foreground="White" FontSize="15" Click="Button_Click"/>除了定义每个元素的外观之外,还可以定义用资源存储的样式。为了安全定制控件的外观,可以原创 2021-04-29 15:53:21 · 440 阅读 · 0 评论