c#
文章平均质量分 68
pandawangyt
其实不知道说些什么
展开
-
C#:使用XML序列化属性时,为何 [NonSerializedAttribute] 不起作用?
序列化过程static void Main(string[] args){ string FileName = Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + "//test.xml"; TestSerialization test = new TestSerialization(); Stream saveFileStream = File.Create(FileName); XmlSer原创 2021-09-11 17:51:46 · 982 阅读 · 0 评论 -
WPF:使用【Arc】制作环形加载动画和环形进度条
安装Blend包首先引入Blend包,【工具】-【NuGet包管理器】-【管理解决方案的NuGet程序包】,在【浏览】页面搜索关键词【Blend】,安装引入Blend包在MainWindow.xaml的Window标签里引入xmlns:ed="http://schemas.microsoft.com/expression/2010/drawing"环形加载等待动画<ed:Arc Width="300" Height="300" StartAngle="0原创 2021-08-20 17:08:22 · 2832 阅读 · 0 评论 -
C# 空操作符:?: ?. ?? <T>?
本文记录如题?: ?. ?? <T>?几个C#语法的简写,主要和空(null)类型有关。1、标题三元运算符 ?: int a = 1; Console.WriteLine((a == 1) ? "a == 1" : "a !=1 "); a = 2; Console.WriteLine((a == 1) ? "a == 1" : "a !=1 ");输出:表达式a==1分别为True和False2、标题 -标题 NULL检查,不为NULL在执行 ?.string b = nu原创 2021-08-05 16:15:34 · 538 阅读 · 0 评论 -
WPF:使用EventHandler事件实现窗口间的传值
1、测试方法主窗口,有一个按钮和内容输入框,点击按钮,将打开一个新的窗口,同时将输入框的内容传到新窗口。2、实现方法使用Messenger在两个窗口的ViewModel之间传输。3、主窗口View<StackPanel Orientation="Vertical" HorizontalAlignment="Center" VerticalAlignment="Center"> <TextBox Width="200" Height="50"原创 2021-05-27 15:26:23 · 1952 阅读 · 0 评论 -
WPF:自定义IP地址输入框的实现
先看效果图:仿照电脑以太网属性那里的IP地址输入框设计的实现的主要功能有:1、只能输入数字、Delete、Enter、Back、Tab、左右方向键,且数字在0-255之间。2、输入数字最多三位,超过三位自动跳转到下一个输入框;如果输入框中有数字,则全选数字。3、Delete就正常从后面删除;Enter暂时无操作();Tab自动跳转焦点;4、Back往前删除,如果当前输入框为空,则跳转到前面一个输入框;如果前面一个输入框有数字,则删除一位数字;左右方向键就控制光标移动。布局4个Text原创 2021-03-30 11:45:52 · 2043 阅读 · 0 评论 -
WPF:使用Popup制作带箭头的弹出提示框
先上效果图:思路:制作带箭头的边框:使用Path首先我们要制作带箭头,且有4个圆角的“边框”,简单点的可以去找个图片当背景,但是遇到复杂的就不适用了。所以这里我们选择使用Path来画出这个带箭头圆角边框。 看下图(PPT画图好难)我们分析一下这个边框形状,为了简单起见我们先假定长宽一样。1、中间蓝色是个长宽=100的正方形,就是效果图中浅蓝色那部分,在该部分可以放任意多的内容。2、假定4个圆角的半径都为5,箭头那里三角形底(黄色线),那就假定为2*r=10。3、以左上角为坐标原点,应该不原创 2020-12-05 09:57:20 · 2595 阅读 · 3 评论 -
C#小记
1、整型(int)数组快速转字符串数组(string)使用Linq语法int[] num = { 1, 7, 3 };Console.WriteLine(string.Format("我有{0}个女朋友,一周{1}天,每天吃{2}顿", num.Select(i => i.ToString()).ToArray()));结果:这样对于字符串的格式化,直接传入一个数组就行了。不用for循环把num中的元素全部转成string,然后再用str[i]这样赋值,简单了很多。...原创 2020-12-05 08:39:15 · 116 阅读 · 0 评论 -
WPF实现一键(换肤)切换主题颜色
现在很多软件都支持一键切换主题颜色的功能,以适应不同场景下给予人不同的体验。那WPF如何做到一键换肤呢?一、思路更换控件的样式资源文件。我们都知道不要写死控件的样式,例如直接按钮设置背景色为黑色<Setter Property="Background" Value="Black"/>大部分时候会另外新建两个字典资源文件<ResourceDictionary>,一个Button.xaml专门写按钮的样式资源,通过style = {StaticResource x:Key}的原创 2020-11-14 17:13:41 · 5868 阅读 · 0 评论 -
在WPF中使用Winform中自带的画图控件Chart,模拟动态更新数据
一、如何在WPF中使用Chart控件1、添加引用右键项目引用-添加引用,在程序集中选择下图三个东东2、添加命名空间xmlns:Wchart="clr-namespace:System.Windows.Forms.DataVisualization.Charting;assembly=System.Windows.Forms.DataVisualization"3、引用注意要放在WindowsFormsHost标签内部<WindowsFormsHost Grid.Row="2">原创 2020-11-07 16:31:09 · 3388 阅读 · 2 评论 -
WPF 解决Popup的位置不能随窗口位置、大小改变而改变的问题
问题描述:WPF中会使用Popup来实现类似点击按钮,弹出一个小下拉窗口(非window)的功能。如果popup设置了StayOpen,此时改变窗口的大小或者位置,会发现Popup停在原地,不会随着窗口的位置、大小变化而改变。类似下图:布局代码:<Border BorderBrush="Black" BorderThickness="1" Margin="100,150"> <Grid> <Button Name="btn" Content="下拉框停靠位置" Wi原创 2020-11-05 10:57:54 · 2755 阅读 · 0 评论 -
WPF、C#:值转换器(IValueConverter)的的使用
WPF、C#:值转换器(IValueConverter)的的使用1、使用场景例如,设置按钮的宽度(或长度),绑定为其父元素或者其他命名(x:Name)元素宽度(或长度等)的一半(或者1/3等等)。正常在布局文件中使用数据绑定只能是绑定固定的值,如宽度Width="{Binding ElementName=源元素名称, Path=Width}不能使用运算符,如只需要一半宽度Width="{Binding ElementName=源元素名称, Path=Width / 2}2、解决方法创建值转原创 2020-10-10 11:22:47 · 3843 阅读 · 1 评论 -
WPF:MouseDown、MouseUP事件,鼠标按下不起作用
后台代码设置按钮按下、释放的事件通常我们会为按钮btn添加MouseDownEvent和MouseUpEvent事件,,如下:public MainWindow(){ InitializeComponent(); btn.AddHandler(Button.MouseDownEvent, new MouseButtonEventHandler(Btn_MouseDown)); btn.AddHandler(Button.MouseUpEvent, new MouseButtonEventHand原创 2020-09-26 10:39:12 · 7528 阅读 · 1 评论 -
C# MenuStrip中的item快捷键设置
基本知识MenuStrip是C#用来做Windows窗口应用程序的一个常用组件,翻译过来就是菜单栏(类似文件、编辑、视图、帮助等等这一栏)。所有经常看到有很多软件的文件-保存选项后面写着Ctrl+S,这就是利用快捷键间接调用点击保存这个事件的功能。实验首先在visual studio中依次点击文件-新建-项目,出现下图按图中数字顺序选择,第三项可以自己设置。确定完成后,可以在解决方案资源管...原创 2019-10-16 09:27:38 · 4679 阅读 · 1 评论