
WPF学习手记
WPF新手学习手记;
WPF开发中的一些解决方案和技巧;
控件和三方插件应用;
程序猿老王。
好记性不如烂笔头
展开
-
【WPF学习手记】C#实现高斯拟合的模拟退火算法
算法功能:实现高斯拟合,可根据需要修改。源码public static double PeakPicker(double[] xfit, double[] yfit) { // 定义子函数 ************************* // 数组拷贝 void ArrCopy(double[] d...原创 2018-08-11 09:51:59 · 2354 阅读 · 0 评论 -
【WPF学习手记】C#产生0~1之间的随机数
函数功能:产生 0~1 之间的随机数。代码private double random(){ var seed = Guid.NewGuid().GetHashCode(); Random r = new Random(seed); int i = r.Next(0, 100000); return (double)i / 100000;}补充说明...原创 2018-08-11 09:52:16 · 10798 阅读 · 0 评论 -
【WPF学习手记】二维数组的伪彩图显示
目的:实现二维数组的伪彩图显示,自定义Colormap。xaml代码<Window x:Class="Data_to_Bitmap.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.micros...原创 2018-08-07 13:33:03 · 1869 阅读 · 0 评论 -
【WPF学习手记】图像灰度拉伸
图像灰度拉神,主要是将图像的灰度拉伸至全灰度区间,计算公式如下:xaml代码<Window x:Class="ImageProcess_GrayStretch.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http...原创 2018-08-07 14:37:44 · 1396 阅读 · 0 评论 -
【WPF学习手记】图像水平镜像和垂直镜像处理
目的:实现图像的水平镜像和垂直镜像功能。xaml代码<Window x:Class="ImageProcess_Mirror.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.micro...原创 2018-08-08 11:04:46 · 2931 阅读 · 0 评论 -
【WPF学习手记】图像处理:亮度、饱和度、对比度、Gamma调节
WPF图像处理程序,包括亮度、饱和度、对比度、Gamma调节。// Lightness Adjust public static void BitmapLightnessAdjust(Bitmap curBitmap, int width, int height, int delta) { if (delta == 0...原创 2018-08-08 13:01:13 · 2848 阅读 · 0 评论 -
【WPF学习手记】提取图片感兴趣区域
目的:提取图片的感兴趣区域。xaml代码<Window x:Class="ImageProcess_GetROI.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/w...原创 2018-08-08 14:20:13 · 1917 阅读 · 0 评论 -
【WPF学习手记】OxyPlot制作ImageCanvas
自定义控件系列,基于OxyPlot开发。ImageCanvas控件 功能包括:二维数组图像显示;伪彩(十七种标准Colormap,支持自定义Colormap);支持绘制直线、折线、角度、椭圆(包括圆)、矩阵(包括正方形)、多边形即ROI、文本标注、箭头标注、标题;自动计算长度、角度、面积(像素点个数、总和、平均值);保存、加载绘制对象;保存 ROI数据模板;缩放、平移;旋转、翻转。...原创 2019-05-12 14:41:57 · 2001 阅读 · 5 评论 -
【WPF学习手记】OxyPlot绘制Surf图和Contour图
自定义控件系列,基于OxyPlot开发的。效果图二维数组显示控件,支持修改标题、设置X和Y范围、设置X和Y数值、设置对数或线性刻度、设置等高线数量、设置Colorbar。xmlns:surf="clr-namespace:SurfMaps;assembly=SurfMaps"<surf:MySurf Grid.Row="1" Name="mySurf"/>...原创 2019-04-24 11:32:28 · 3307 阅读 · 8 评论 -
【WPF学习手记】OxyPlot制作Colorbar
自定义控件系列,基于OxyPlot开发。效果图 六个接口函数,是否可编辑,设置最大、最小值,设置标准的 Colorbar,反转颜色,获取当前 Colorbar 的 RGB 数组;编辑模式下,双击左键弹出颜色选择框,自定义Colorbar;在节点处按Ctrl+右键可删除节点。xmlns:colorbar="clr-namespace:Colorbar;assembly=Col...原创 2019-04-24 11:27:07 · 1408 阅读 · 0 评论 -
【WPF学习手记】WPF带有ToggleButton的ComboBox的样式设计
目的:ComboBox显示选中项的图标。 选中某项,ComboBox显示对应图标,并且ComboBox设置为选中和未选中两种状态。xaml代码<Window x:Class="ComboBoxStyle.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation...原创 2019-05-18 15:03:22 · 2236 阅读 · 0 评论 -
【WPF学习手记】图像动态播放并保存为gif 动图
本demo实现两个目的:1. 图片的循环播放; 2. 生成 gif 动图;思路:循环播放采用计时器;生成 gif 采用官方的函数,貌似只播放一次,不能循环播放。xaml代码<Window x:Class="GifSave.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presen...原创 2019-08-12 11:22:34 · 660 阅读 · 0 评论 -
【WPF学习手记】RenderTargetBitmap转BitmapImage、System.Drawing.Image
最开始的目的是保存控件为图片,然后保存到Excel中(Epplus库)。控件保存成图片// UI --> Pngpublic static void UISaveToPng(this FrameworkElement ui, string fileName){ int width = (int)ui.ActualWidth; int height = (int)u...原创 2019-08-06 14:13:11 · 4907 阅读 · 0 评论 -
【WPF学习手记】WPF文本语音播报
WPF语音播报案例。引用:System.Speechxaml代码<Window x:Class="Text_Speech.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.c...原创 2019-07-12 13:28:42 · 2061 阅读 · 0 评论 -
【WPF学习手记】限定鼠标范围
一点设置:项目属性→生成→允许不安全代码(选中);xaml代码<Window x:Class="MouseLimited.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/...原创 2019-02-26 15:29:07 · 693 阅读 · 0 评论 -
【WPF学习手记】Canny边缘检测
WPF图像处理系列,Canny算子进行边缘检测。原图和效果图代码// 边缘检测:Canny public static ImageSource GrayDataToImageEdgeCanny(this ushort[,] grayData, int[,] colorMap, int highThreshold, int lowThreshould, int max...原创 2019-02-26 15:52:46 · 591 阅读 · 0 评论 -
【WPF学习手记】Roberts边缘检测
WPF图像处理系列,Roberts算子进行边缘检测。原图和效果图代码:// 边缘检测:Roberts public static ImageSource GrayDataToImageEdgeRoberts(this ushort[,] grayData, int[,] colorMap, int maxValue = 65535) { ...原创 2019-02-26 15:50:34 · 500 阅读 · 0 评论 -
【WPF学习手记】图像锐化:拉普拉斯算子
WPF图像处理系列,拉普拉斯算子进行图像锐化。原图和效果图:代码// 锐化:拉普拉斯算子 public static ImageSource GrayDataToImageSharpen(this ushort[,] grayData, int[,] colorMap, int maxValue = 65535) { int ...原创 2019-02-26 15:46:36 · 692 阅读 · 0 评论 -
【WPF学习手记】图像模糊:高斯算子
WPF图像处理系列,高斯算子进行图像模糊。原图和效果图代码: // 模糊:高斯算子 public static ImageSource GrayDataToImageBlur(this ushort[,] grayData, int[,] colorMap, int maxValue = 65535) { in...原创 2019-02-26 15:41:47 · 1038 阅读 · 0 评论 -
【WPF学习手记】滚动条位置
实现滚动条位置和选中项对应。效果图xaml代码<Window x:Class="ListView_Scroll.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/wi...原创 2018-12-26 17:32:25 · 2687 阅读 · 2 评论 -
【WPF学习手记】进度条实时更新
实现一个实时更新的进度条。效果图xaml代码<Window x:Class="ProgressBar.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2...原创 2018-12-26 17:09:00 · 3058 阅读 · 0 评论 -
【WPF学习手记】资源下拉菜单引用
两种方式引用资源下拉菜单:直接在 Xaml 里引用,后台引用。效果图xaml代码<Window x:Class="ContextMenu_Resources.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://s...原创 2018-12-26 16:46:48 · 1049 阅读 · 0 评论 -
【WPF学习手记】实例学习WPF的MVVM编程模式3
程序功能:有两个ComboBox,第一个ComboBox的ComboBoxItem为Name、Age和Sex,第二个ComboBox的ComboBoxItem为一个类,类中包含了Name、Age和Sex三个字段;根据第一个ComboBox选中的内容,来确定第二个ComboBox要显示字段。 同时,当鼠标进入第二个ComboBox时,会显示ToolTip,即完成一个控件的多个操作。...原创 2018-08-22 16:52:01 · 458 阅读 · 0 评论 -
【WPF学习手记】实例学习WPF的MVVM编程模式2
软件功能:实现两个数据求和,通过两个Slider确定输入值,将结果显示到第三个Slider。NotificationObject.csusing System.ComponentModel;namespace MVVMDemo2.ViewModels{ class NotificationObject : INotifyPropertyChanged { ...原创 2018-08-22 16:31:12 · 527 阅读 · 0 评论 -
【WPF学习手记】实例学习WPF的MVVM编程模式1
先看一下程序界面,要实现的功能很简单,输入一个数,然后点击按钮,将输入数的平方根结果显示在上方。 不使用MVVM模式,在Calculate按钮的Click事件中,编写代码,将结果显示到上方的TextBlock中。 现在,我们来一步步实现MVVM模式编程,将数据属性:ViewModel的基类NotificationObject.cs,ViewModel属性改变,通...原创 2018-08-22 16:19:03 · 580 阅读 · 0 评论 -
【WPF学习手记】WPF超链接使用
xaml里添加超链接控件Hyperlink:<Label FontSize="14" HorizontalAlignment="Center"> <Hyperlink Name="HLink" NavigateUri="http://www.baidu.com/" Click="Hyperlink_Click" Foreground="...原创 2018-08-10 08:41:09 · 2804 阅读 · 0 评论 -
【WPF学习手记】 DataGrid表头和内容样式
表头样式、内容居中样式和多行显示样式。表头样式和内容居中样式<Controls:MetroWindow.Resources> <!-- 表头样式 --> <Style x:Key="dataGridHeaderStyle" TargetType="DataGridColumnHeader"> &...原创 2018-08-10 08:38:18 · 9394 阅读 · 0 评论 -
【WPF学习手记】显示图片列表
目的:制作一个图片列表,单击图片触发对应事件。效果图xaml代码<Window x:Class="WPF_ImageList.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.micro...原创 2018-07-29 12:20:41 · 7375 阅读 · 0 评论 -
【WPF学习手记】InkCanvas绘制矩形和椭圆
前面说到了InkCanvas的基本操作,这里用一个实例来说明具体应用:绘制矩形和椭圆。效果图xaml代码<Window x:Class="WPF_InkCanvas.ROI_InkCanvas" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:...原创 2018-07-28 22:57:52 · 7148 阅读 · 4 评论 -
【WPF学习手记】InkCanvas基本操作
WPF的InkCanvas就是一个画板,可以在上面随意涂鸦,每写上一笔,InkCanvas的Strokes集合里就新增一个涂鸦对象,下面的代码演示了基本的操作。效果图xaml代码<Window x:Class="WPF_InkCanvas.MainWindow" xmlns="http://schemas.microsoft.com/winfx/200...原创 2018-07-28 22:07:50 · 5846 阅读 · 5 评论 -
【WPF学习手记】鼠标滑过Button时放大
预期效果:鼠标滑过Button时有放大效果,并且改变背景色;点击Button时改变背景色,释放鼠标还原;鼠标离开Button时还原。 Button的Content是文字或者图片都适用,代码如下:xaml代码<Window x:Class="WPF_ButtonStyle.MainWindow" xmlns="http://schemas.micr...原创 2018-06-14 11:00:07 · 5604 阅读 · 1 评论 -
【WPF学习手记】利用fo-dicom读取DICOM文件
利用开源库 fo-dicom 读取 DICOM 文件基本操作。读取DICOM信息 原始数据经过窗宽、窗位校正后显示成图。private void Button_Click1(object sender, RoutedEventArgs e){ ImageManager.SetImplementation(WPFImageManager.Instance); va...原创 2018-10-19 15:30:50 · 10019 阅读 · 2 评论 -
【WPF学习手记】Epplus写入数据到Excel
目的:利用Epplus将数据保存到Excel,并在Excel中插入图表。private void Button_Click(object sender, RoutedEventArgs e) { string file_path = "test.xlsx"; FileInfo newFile = new FileInfo...原创 2018-08-08 15:16:41 · 1728 阅读 · 0 评论 -
WPF引用MahApps.Metro
MahApps.Metro是一款win10扁平化风格的开源控件库。安装MahApps.Metro 项目右键,管理NuGet程序包,浏览,搜索MahApps.Metro,安装;应用 App.xaml内容如下,Steel.xaml为默认主题颜色,可修改。<Application x:Class="ProjectName.App" xmlns...原创 2018-08-13 08:37:59 · 1391 阅读 · 0 评论 -
【WPF学习手记】使用TeeChart绘制三维图形
目的:使用TeeChart绘制三维图形。效果图项目中添加引用TeeChart.dll和TeeChart.WPF.dll;xaml中添加引用xmlns:my="clr-namespace:Steema.TeeChart.WPF;assembly=TeeChart.WPF"<my:TChart Name="tChart1" Margin="5" Width="600" ...原创 2018-08-10 08:40:46 · 6709 阅读 · 4 评论 -
【WPF学习手记】DataGrid显示大量文本并附带行序号
目的:显示大量文本内容,并在前面添加行序号。技术要领:DataGrid显示内容,取消鼠标滑过、点击事件(IsHitTestVisible = False),隐藏列表头信息和网格线。代码如下<DataGrid Name="Result_Grid" AutoGenerateColumns="False" FontSize="14" CanUserReorderColumns=...原创 2018-08-09 15:06:10 · 1636 阅读 · 0 评论 -
【WPF学习手记】制作二维码和条形码
1. 下载 zxing.dll,并添加引用;2. 界面代码<Window x:Class="Niumag_WFF.QRCode" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2...原创 2018-06-14 11:24:22 · 7374 阅读 · 2 评论 -
【WPF学习手记】绘制箭头
先看一下效果图:思路:利用 Polygon 来绘制,整个polygon由5个点组成,按照:起点 --> 终点 --> 第三点 --> 第四点 --> 终点的顺序,最后填充颜色即可 。核心代码如下:public Polygon DrawArrow(double x1, double y1, double x2, double y2, double arrow...原创 2018-12-06 15:52:56 · 6087 阅读 · 5 评论 -
【WPF学习手记】控件修饰Adorners
先看一下效果图:官方文档有介绍:https://docs.microsoft.com/en-us/dotnet/framework/wpf/controls/adorners-overviewxaml文件<Window x:Class="AdornerExample.MainWindow" xmlns="http://schemas.microsoft.c...原创 2018-11-25 21:54:16 · 824 阅读 · 0 评论 -
WPF DataGrid复选框CheckBox单击响应事件
目的:响应DataGrid的CheckBox单击事件。 DataGrid自带有CheckBox栏,但是得点击两次才能选中,第一次是选中行,第二次是选中CheckBox。解决思路 自定义模板,单击即响应CheckBox_Click事件。<DataGridTemplateColumn Header="采样" Width="*"> <DataGrid...原创 2018-08-13 08:37:19 · 12899 阅读 · 4 评论