WPF MVVM
自学WPFMVVM
智商偏低
这个作者很懒,什么都没留下…
展开
-
WPF依赖属性和附加属性快速理解
依赖属性和附加属性快速入门原创 2022-09-09 10:02:26 · 668 阅读 · 0 评论 -
WPF中OnRender使用(一)
Viewport为我们指示了如何将图形投射到绘制表面,如果我们将绘制表面的左上角定义为(0,0),右下角定义我(1,1),那么可以设置一个相当与该值的矩形(Rect)来指示我们的图形应该被投射到哪里。这也是Shape与Geometry的区别。此外,DrawingBrush还有一个很有意思的属性ViewBox(继承于TileBrush),它指示了只取图形中的哪一部分作为观察区域(这与Clip不同),它的定义方式与Viewport类似,但它不是相对于绘制表面而是相当于我们的图形的。原创 2022-09-07 11:20:31 · 1969 阅读 · 0 评论 -
WPF类似于WINFORM的Onpaint
似乎不在需要这种重新绘制控件的操作了。其实在WPF中,如果我们需要低级别的自定义绘制同样是可以的,那么我们就需要一个名DrawingContext的类。在WinForm中,要是想自定义一些控件,就需要重写控件的On_Paint属性,例如我写的冰墩墩,就是利用控件的On_Paint属性重新绘制的。1,在我们的代码中,我们不能直接调用OnRender方法,它将被系统异步调用进行布局和绘制(这与Win32不同)。3,我们的绘制不是实时的,事实上我们的绘制将被保存到一个绘制指令集中被图形 系统在某个时候调用。原创 2022-09-06 17:51:12 · 543 阅读 · 0 评论 -
WPF MVVM事件绑定
事件转命令在我们大多数拥有Command依赖属性的控件,大多数是由于继承了ICommandSource接口,ICommandSource接口拥有三个函数成员,ICommand接口类型属性Command,object 类型属性CommandParameter,IInputElement 类型属性CommandTarget,而基本继承着ICommandSource接口这两个基础类的就是ButtonBase和MenuItem,因此像Button,Checkbox,RadioButton等继承自ButtonBa原创 2022-01-09 13:51:56 · 1520 阅读 · 0 评论 -
WPF依赖属性和附加属性
普通属性private bool _IsSpinning;public bool IsSpinning{ get { return _IsSpinning; } set { _IsSpinning = value; }}然后我们使用DependencyProperty类定义一个对象,这个对象将作为IsSpinning属性的依赖,如下:public static readonly DependencyProperty IsSpinningProperty然后,我们在将这个依赖对原创 2022-01-04 15:02:14 · 675 阅读 · 0 评论 -
wpfcomboxmvvm
开始之前先了解一些基础知识:ComboxDisplayMemberPath属性,这个属性就是用于界面显示的数据类型,可以将集合元素中的一个属性类型赋值给DisplayMemberPath属性。SelectedValuePath属性,用于指定在集合元素中被选中的值的类型,对应的SelectedValue属性的值就是就是这个指定的类型的值。触发器CommandParameter 传参ElementName 绑定元素的名称上代码:一、事件public class Delete原创 2021-12-22 19:28:33 · 1035 阅读 · 0 评论 -
WPF 截取控件
public static class ToBitmapTool { /// <summary> /// 截图转换成bitmap /// </summary> /// <param name="element"></param> /// <param name="width">默认控件宽度</param> /// <param.原创 2021-04-23 13:49:30 · 211 阅读 · 0 评论 -
WPF MVVM模式DataGrid
1.构造MVVM基本功能类因为没有使用MVVM框架,所以要自己构造两个MVVM的基本功能类,完成属性通知和命令绑定1.1 属性通知 /// <summary> /// INotifyPropertyChanged 用于通知属性改变(实现ViewModel向View喊话,所有绑定该属性的都会得到通知) /// </summary> public class NotificationObject : INotifyPropertyChange.原创 2021-04-11 11:08:33 · 1865 阅读 · 0 评论 -
WPF MVVM模式登录
实现的功能是客户打开登录界面,输入账户密码,加载revit插件并打开revit创建Command建public class LoginCommand : ICommand { readonly Func<Boolean> _canExecute; readonly Action _execute; public LoginCommand(Action execute) : this(execute, null) { }原创 2021-04-09 20:22:05 · 796 阅读 · 0 评论 -
自定义的 ListBoxItem 自适应ListBox的宽度
1 < ListBox x:Name= "xxx">2 < ListBox.ItemContainerStyle>3 < Style TargetType= "ListBoxItem">4 < Setter Property= "HorizontalContentAlignment" Value= "Stretch" />5 < /Style>6 < /ListBox.ItemContaine.原创 2021-03-31 14:55:03 · 566 阅读 · 0 评论 -
WPF 隐藏窗体标记
this.ShowInTaskbar = false;原创 2021-03-30 20:13:38 · 211 阅读 · 0 评论 -
WPF 使用另一个线程打开窗体
private Task RunNewWindowAsync() { TaskCompletionSource<object> tc = new TaskCompletionSource<object>(); // 新线程 Thread t = new Thread(() => { IntPtr rvtPtr = Process...原创 2021-03-29 11:31:35 · 631 阅读 · 0 评论 -
WPF父窗口与子窗口的关系之——窗口层次关系及其上下位置分布
关于子窗体的层级关系总结一下哈,希望能对大家有些帮助假设有这样两个窗体:RootWindow,SubWindow,在RootWindow中引发某事件而显示SubWindow1,如果弹出窗体(比如SubWindow)仅仅是调用Show方法,并且没有设置其Owner属性:ClassRootWindow{ void Foo() { SubWindow sw = newSubWindow(); ...原创 2021-02-21 12:32:31 · 1855 阅读 · 0 评论 -
WPF设置控件的透明度、背景
透明度:控件的Opacity属性,范围从0-1,0表示完全透明,看不见。背景色:如果一个控件在想显示其父容器的背景色,则在其xaml代码中设置其Background="{x:Null}"即可。<RichTextBox Opacity="0.8" BorderThickness="0" IsReadOnly="True" Background="{x:Null}"></RichTextBox>...原创 2021-03-28 11:18:25 · 1560 阅读 · 0 评论 -
WPF DataGrid复选框CheckBox单击响应事件
目的:响应DataGrid的CheckBox单击事件。 DataGrid自带有CheckBox栏,但是得点击两次才能选中,第一次是选中行,第二次是选中CheckBox。解决思路 自定义模板,单击即响应CheckBox_Click事件。<DataGridTemplateColumn Header="采样" Width="*"> <DataGridTemplateColumn.CellTemplate> <DataTemplate...原创 2021-03-19 20:32:21 · 1731 阅读 · 0 评论 -
WPF MVVM模式Command命令
public class RelayCommand : ICommand { public event EventHandler CanExecuteChanged; /// <summary> /// 用来帮助命令呼叫者判断命令能不能执行 /// </summary> /// <param name="parameter"></param> .原创 2021-03-06 20:09:29 · 506 阅读 · 0 评论 -
WPF采用MVVM模式命令绑定
<Window x:Class="WpfBing.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:vm="clr-namespace:WpfBing" xmlns:i="clr-namespace:System.原创 2021-03-06 17:10:57 · 345 阅读 · 0 评论 -
MVVM模式解析和在WPF中的实现命令绑定(三)
命令绑定要达到的效果命令绑定要关注的核心就是两个方面的问题,命令能否执行和命令怎么执行。也就是说当View中的一个Button绑定了ViewModel中一个命令后,什么时候这个Button是可用的,按下Button后执行什么操作。解决了这两个问题基本就实现了命令绑定。另外一个问题就是执行过程中需要的数据(参数)要如何传递。本次主要探讨这几个问题。命令绑定的实现自定义一个能够被绑定的命令需要实现ICommand接口。该接口包含:public event EventHandler CanExe原创 2021-03-06 16:53:51 · 183 阅读 · 0 评论 -
MVVM模式解析和在WPF中的实现数据绑定(二)
数据绑定要达到的效果数据绑定要达到什么效果呢,就是在界面中绑定了数据源之后,数据在界面上的修改能反映到绑定源,同时绑定源的修改也能反映到界面上。从界面反映到绑定的数据源是很容易理解的,因为在绑定过程中我们指定了DataContext和Binding的对象,很容易找到绑定的源并修改。但数据源修改时怎么通知界面呢?因为ViewModel中被绑定的属性并不知道谁绑定了它,如果在ViewModel中存一个View的引用,在数据发生变化时修改View,这无疑又将ViewModel和View耦合在了一起,而且这样做原创 2021-03-06 16:19:50 · 474 阅读 · 0 评论 -
MVVM模式解析和在WPF中的实现(一)
一、MVVM是Model、View、ViewModel的简写,这种模式的引入就是使用ViewModel来降低View和Model的耦合,说是降低View和Model的耦合。也可以说是是降低界面和逻辑的耦合,理想情况下界面和逻辑是完全分离的,单方面更改界面时不需要对逻辑代码改动,同样的逻辑代码更改时也不需要更改界面。同一个ViewModel可以使用完全不用的View进行展示,同一个View也可以使用不同的ViewModel以提供不同的操作。1.ModelModel就是一个class,是对现实中事物原创 2021-03-06 16:10:31 · 251 阅读 · 0 评论 -
WPF快速入门系列(一)--WPF布局概览
一.WPF的自我介绍 Windows Presentation Foudation,WPF是下一代显示系统,用来生成能带给用户震撼视觉体验的Windows客户端应用程序。WPF的核心是一个与分辨率无关并且基于向量的程序引擎,目的在于利用现代图形硬件的优势。WPF在.NET Framework 3.0中被微软引入到.NET Framework类库中,并且在.NET 3.5、4.0 和...原创 2020-04-27 15:57:24 · 425 阅读 · 0 评论