WPF
Danny_hi
但行好事,莫问前程!
展开
-
WPF TextBox限制输入控制
设置TextBox只能输入整数和小数;原创 2023-12-22 13:20:54 · 457 阅读 · 0 评论 -
WPF WrapPanel、UniformGrid、DockPanel介绍
WPF WrapPanel、UniformGrid、DockPanel介绍原创 2023-03-06 10:39:09 · 1079 阅读 · 0 评论 -
WPF TabControl样式
WPF TabControl样式转载 2022-12-30 10:10:01 · 1316 阅读 · 0 评论 -
WPF使用第三方字体库
WPF使用第三方字体库转载 2022-12-28 13:38:28 · 1234 阅读 · 0 评论 -
WPF 中 XAML 使用 String.Format 格式化字符串示例
WPF 中 XAML 使用 String.Format 格式化字符串示例转载 2022-09-07 21:09:23 · 999 阅读 · 0 评论 -
WPF 程序自删除
WPF 程序自删除核心实现方法就是调用 cmd 传入命令行,等待几秒之后删除文件应用程序在运行时,是不能将 exe 文件进行删除的。但是可以将 exe 改名以及在驱动器内进行移动文件删除应用程序可以让 cmd 进行删除,在 cmd 可以使用 timeout 命令延迟,然后通过 && 进行执行后续逻辑,从而实现延迟执行命令。让 cmd 延迟执行 DEL 命令进行删除应用,在应用调用删除之后,让应用程序结束即可:static void Main(string[] args)转载 2022-05-23 20:30:38 · 371 阅读 · 0 评论 -
WPF MVVM模式下关闭窗体
WPF MVVM模式下关闭窗体关闭窗口的方法:借助System.Windows.Interacivity里面的Behavior,把“LoginViewModel.cs”里面的属性,关联到LoginView.xaml层的一个事件(Window.Close())一、在“Common”文件夹,新建“WindowManagerBehavior.cs”类,定义关闭行为public class WindowBehavior : Behavior<Window> { /// &l原创 2022-05-22 10:19:41 · 4983 阅读 · 1 评论 -
WPF用委托实现子窗体之间互相切换
WPF用委托实现子窗体之间互相切换有时候一个在导航下需要多个子窗体之间实现相互切换,此功能可以使用委托来实现;主窗体MainViewModel定义委托:public class MainViewModel: ViewModelBase { public static Action<int> SetAction { get; set; } public MainViewModel() { SetAction =原创 2022-05-01 19:37:17 · 3777 阅读 · 0 评论 -
WPF 显示Grid网格线
WPF 显示Grid网格线一、添加GridOptions类:public class GridOptions { //暂时不处理实时显示的事情 #region 显示边框信息 public static readonly DependencyProperty ShowBorderProperty = DependencyProperty.RegisterAttached("ShowBorder", typeof(bool),转载 2021-12-23 13:54:59 · 3664 阅读 · 0 评论 -
WPF程序中嵌入Winform程序
WPF程序中嵌入Winform程序一、首先创建一个Winform程序,把输出类型改为类库:二、创建一个WPF程序,并添加引用System.Windows.Forms和WindowsFormsIntegration以及Winform类库的引用:三、在WPF程序MainWindows.xaml中添加WindowsFormsHost控件: <Grid Margin="20"> <WindowsFormsHost Name="winform"></Wind原创 2021-12-06 15:43:07 · 3807 阅读 · 0 评论 -
WPF DataGrid控件隐藏栏显示
WPF DataGrid控件隐藏栏显示一、先添加一个类BindingProxy:public class BindingProxy : Freezable { protected override Freezable CreateInstanceCore() => new BindingProxy(); public object Data { get => GetValue(DataProperty);原创 2021-12-05 14:53:36 · 1201 阅读 · 0 评论 -
Winform和WPF绘制图形验证码
C#绘制图形验证码在窗体程序中添加一个PictureBox控件和一个Button控件:private string CheckCode()//生成随机数{ int number; char code; string checkcode = string.Empty; Random random = new Random();...原创 2019-07-26 14:33:31 · 433 阅读 · 0 评论 -
WPF 网格线
WPF 网格线代码:<Window x:Class="WpfApp1.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原创 2021-10-09 14:58:20 · 715 阅读 · 0 评论 -
WPF 字幕滚动
WPF 字幕滚动<Grid> <Canvas VerticalAlignment="Top" Height="46" ClipToBounds="True" Margin="0,23,0,0"> <StackPanel Name="StatueWithFireMachine" Margin="7,5,0,0" Height="34" VerticalAlignment="Center" HorizontalAlignment="Lef原创 2021-09-30 13:26:18 · 1842 阅读 · 0 评论 -
WPF 加载动画
WPF 加载动画<Grid Width="35" Height="35"> <Grid.Resources> <DrawingBrush x:Key="brush" Stretch="None" AlignmentX="Center" AlignmentY="Top"> <DrawingBrush.Drawing> <GeometryDrawing Brush="Black转载 2021-09-16 09:20:25 · 877 阅读 · 0 评论 -
WPF 自定义滚动条控件ScrollViewer(三)
WPF 自定义滚动条控件ScrollViewer(三)一、添加资源字典:ScrollViewer.xaml<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> <Style x:Key="Scroll原创 2021-09-16 09:13:15 · 1078 阅读 · 0 评论 -
WPF中使用CallerMemberName简化InotifyPropertyChanged的实现
WPF中使用CallerMemberName简化InotifyPropertyChanged的实现原文:https://www.cnblogs.com/TianFang/p/3381484.html在WPF中,当我们要使用MVVM的方式绑定一个普通对象的属性时,界面上往往需要获取到属性变更的通知,class NotifyObject : INotifyPropertyChanged { private int number; public int Number转载 2021-07-27 16:52:24 · 616 阅读 · 0 评论 -
WPF将UI保存为图片和保存位图
WPF将UI保存为图片和保存位图WPF将Ui保存为图片private void SaveWindowContent(Window source, string fileName) { FrameworkElement elem = source.Content as FrameworkElement; RenderTargetBitmap targetBitmap = new RenderTargetBitmap(转载 2021-07-23 13:31:54 · 1130 阅读 · 0 评论 -
WPF 使用Task更新UI
WPF 使用Task更新UI有时候,我们需要操作比较耗时的操作,但又不想界面出现假死现象来等待我们的操作,我们可以使用一些遮罩层动画,在进行耗时的操作时,用一些加载动画来规避界面假死;Task task = new Task(() => { //开启加载动画跨线程更新UI(myAnimation指遮罩层动画) this.Dispatcher.Invoke(() => {原创 2021-07-15 21:44:12 · 2949 阅读 · 0 评论 -
WPF 鼠标左键捕获点,用polyline连接起来
WPF 鼠标左键捕获点,用polyline连接起来 Polyline lines; Line dot; Polyline cach; public Window1() { InitializeComponent(); lines=new Polyline(); lines.Stroke =new SolidColorBrush(Colors.B转载 2021-07-04 12:49:21 · 871 阅读 · 0 评论 -
WPF RenderTransform特效
WPF RenderTransform特效原文:https://www.cnblogs.com/xpvincent/archive/2013/03/04/2944906.htmlWPF中的变形(RenderTransform)类是为了达到直接去改变某个Silverlight对象的形状(比如缩放、旋转一个元素)的目的而设计的,RenderTransform包含的变形属性成员就是专门用来改变Silverlight对象形状的,它可以实现对元素拉伸,旋转,扭曲等效果,同时变形特效也常用于辅助产生各种动画效果。转载 2021-07-03 10:09:30 · 229 阅读 · 0 评论 -
WPF 纵向文字显示
WPF 纵向文字显示几种效果:代码:<Grid> <TextBlock Width="100" Height="40" FontSize="30" Text="大家好" Margin="100 0 0 0"> <TextBlock.LayoutTransform> <RotateTransform Angle="270"></RotateTransform>原创 2021-06-10 09:39:05 · 3764 阅读 · 0 评论 -
WPF loading遮罩层
WPF loading遮罩层首先添加一个用户控件:<UserControl x:Class="LoadingMask_Demo.LoadingWait" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:mc="http转载 2021-06-10 09:15:17 · 2385 阅读 · 1 评论 -
WPF 延时操作实现 --- Application.DoEvents()
WPF 延时操作实现如果是在Winform中,我们可以这样实现sleep延时方法:System.Threading.Thread.Sleep(1000); //毫秒在C#窗口程序中,如果在主线程里调用Sleep,在Sleep完成之前, 界面呈现出假死状态,不能响应任何操作!下边实现的是非独占性延时函数,延时过时中界面仍可响应消息:public static void Delay(int milliSecond){ int start = Environment.TickCount;原创 2021-06-09 13:41:52 · 5085 阅读 · 0 评论 -
WPF 使用Quartz MS字体
WPF 使用Quartz MS字体首先下载Quartz Regular.TTF字体文件,然后在项目中新建Resources文件夹,把字体文件添加进来,并设置文件属性中的生成操作为Resource类型。使用方法:<Window x:Class="WPF001.Window1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.micros原创 2021-06-07 16:24:03 · 742 阅读 · 0 评论 -
WPF 带小箭头的按钮
WPF 带小箭头的按钮代码:<Window.Resources> <ControlTemplate x:Key="btnTpl" TargetType="RadioButton"> <StackPanel Orientation="Vertical" Height="30" Background="Transparent"> <Border Name="border" Background=转载 2021-06-03 21:22:36 · 707 阅读 · 0 评论 -
WPF启动主窗体的方法
WPF启动主窗体的方法默认启动方法是在App.xaml里,通过StartupUri="MainWindow.xaml"设定开启的主窗体:另一种启动方式:第一步: 在 App.xaml 里,把 StartupUri=""去掉,改成 Startup=“Application_Startup”第二步: 在 App.xaml.cs里,增加 Application_Startup 事件:private void Application_Startup(object sender, StartupEvent原创 2021-05-18 14:37:49 · 1795 阅读 · 0 评论 -
WPF 获取DLL中的资源方法
WPF 获取DLL中的资源文件结构:创建了一个WPF项目,然后添加了一个类库,在类库中新建了一个Files文件夹,并在文件夹中放入一个txt文件和一个png文件,并将这两个文件的属性中的生成操作改为Resource;操作:获取文本和图片WPF xaml代码:<Window x:Class="WPF001.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"原创 2021-05-14 11:30:26 · 2152 阅读 · 0 评论 -
WPF pack URI简介
WPF pack URI简介WPF使用pack URI语法寻址编译过的文件文件绝对 pack WPF URI1、资源文件 — 本地程序集Uri uri = new Uri(“pack://application:,/ResourceFile.xaml”, UriKind.Absolute);2、子文件夹中的资源文件 — 本地程序集Uri uri = new Uri(“pack://application:,/Subfolder/ResourceFile.xaml”, UriKind.Absol转载 2021-05-14 09:04:00 · 612 阅读 · 0 评论 -
WPF 实现多语言支持
WPF 实现多语言支持例如实现中英文切换1、使用资源字典,首先新建两个字典文件en-us.xaml、zh-cn.xaml。定义中英文的字符串在这里面【注意:添加xmlns:s="clr-namespace:System;assembly=mscorlib】zh-cn.xam如下:<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xm转载 2021-05-13 09:04:52 · 4583 阅读 · 1 评论 -
WPF ItemsControl增加滚动条
WPF ItemsControl增加滚动条ItemsControl是一个基础类型,控件本身没有内置滚动条,如果不太想用ListBox的默认样式,可以自己增加一个滚动条,代码如下: <ItemsControl Height="365" ItemsSource="{Binding ...}" BorderThickness="0" Margin="0 5 0 5"> <ItemsControl.Template> <ControlTemplate Tar原创 2021-05-12 15:48:11 · 2785 阅读 · 1 评论 -
WPF 第三方控件主题库
WPF 第三方控件主题库一、MaterialDesigonToolkit开源项目:https://github.com/MaterialDesignInXAML/MaterialDesignInXamlToolkit使用方法:添加两个Nuget库:MaterialDesignThemes和MaterialDesignColors;这是一个主题库,引用后默认到所有控件样式,如果某个控件不想用,可以这样写:style={x:null}在App.xaml中添加MaterialDesignInXaml样原创 2021-04-09 21:56:39 · 1705 阅读 · 0 评论 -
WPF只允许显示一个子窗体
WPF只允许显示一个子窗体WPF示例:private TestFrm objFrm;private void button_Click(object sender, RoutedEventArgs e){ if (objFrm == null || objFrm.IsVisible == false) { objFrm = new objFrm(); objFrm.Show(); } else { objFrm.Activate(); }}另:原创 2021-04-07 09:49:51 · 1119 阅读 · 0 评论 -
WPF 数据验证
WPF 数据验证效果:文件结构:添加如下引用:NotifyBase类:using System;using System.Collections.Generic;using System.ComponentModel;using System.ComponentModel.DataAnnotations;using System.Linq;using System.Runtime.CompilerServices;using System.Text;using System.T原创 2021-03-07 19:38:45 · 571 阅读 · 0 评论 -
WPF 使用WindowChrome自定义窗体样式
WPF 使用WindowChrome自定义窗体样式示例代码:<Window x:Class="WpfApp4.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/e原创 2021-02-01 21:06:44 · 5554 阅读 · 0 评论 -
WPF 附加属性的应用
WPF 附加属性的应用有些控件的属性不是依赖属性无法进行数据绑定,可定义一个附加属性做为中间值来传递;例如PasswordBox控件的Password属性:添加一个类: class PasswordHelper { public static readonly DependencyProperty PasswordProperty = DependencyProperty.RegisterAttached("Password", typeof(strin原创 2021-01-15 21:49:37 · 572 阅读 · 1 评论 -
WPF 动画闪烁效果
WPF 动画闪烁效果一、按钮外边缘呼吸闪烁点击触发效果;代码:<Window x:Class="WpfApp1.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.c原创 2021-01-13 13:19:45 · 6967 阅读 · 0 评论 -
WPF 自定义搜索框
WPF 自定义搜索框效果:代码:<Window x:Class="WpfApp5.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/b原创 2021-01-12 15:22:07 · 1817 阅读 · 1 评论 -
WPF Expander控件使用
WPF Expander控件使用xaml代码:<Window x:Class="WpfApp5.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/expressi原创 2021-01-12 09:48:10 · 1645 阅读 · 0 评论 -
WPF 自定义一个MessageBox控件
WPF 自定义一个MessageBox控件先看效果:新建一个WPF窗体UMessageBox:xaml代码:<Window x:Class="WPF20201123.Views.UMessageBox" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" x原创 2021-01-07 17:02:53 · 2257 阅读 · 0 评论