C# WPF MVVM项目实战(进阶①)

这篇文章还是在之前用Caliburn.Micro搭建好的框架上继续做的开发,今天主要是增加了一个用户窗体TestFormView,然后通过TabControl,将新增的窗体加载到主界面上进行分页显示,新增的页面引用了

 WPF UI:WPF Datagrid合并表头的思路

https://mp.weixin.qq.com/s/-x_21jOT4VAxiKhT6fgnhg ,

后续有新的想法我继续会在此基础上叠加完善。

01

重要的知识点

本篇内容基于CM框架编写,涉及以下知识点:

① 将UserControl添加到主窗体:

首先在主窗体viewmodel中定义UserControl

public TestFormViewModel TestFormView { get; set; }

然后在构造函数中实例化:

TestFormView = new TestFormViewModel();

最后在主窗体XMAL中附加引用:

 <ContentControl cal:View.Model="{Binding TestFormView}"/>

②分页显示控件TabControl用法:

<TabControl Name="tabControl"><TabItem Name="Up1" Header="PageView1"></TabItem><TabItem Name="Up2" Header="PageView2" >         </TabItem></TabControl>

③表头合并:代码较长,此处省略

④使用样式:

添加资源字典,然后填写样式:

    <Style x:Key="BtnControl" TargetType="Button"><Setter Property="MinHeight" Value="30"/><Setter Property="MinWidth" Value="50"/><Setter Property="Background" Value="LightGray"/><Setter Property="FontSize" Value="35"/>
</Style>

引用:

在需要引用的视图中把编写好的样式合并进来:

 <UserControl.Resources><ResourceDictionary><ResourceDictionary.MergedDictionaries><ResourceDictionary Source="../Styles/TestStyle.xaml"/></ResourceDictionary.MergedDictionaries></ResourceDictionary></UserControl.Resources>

然后引用:

<Button Name="btnCtrl" Content="ActionBtn" Style="{StaticResource BtnControl}" />

⑤Tooltip用法:

C#下的ToolTip是当鼠标移到某个控件上后可以弹出提示的控件。

 <Button Content ="Button"  Background="LightCyan" FontSize="45" Grid.Row="1" Grid.Column="0"><Button.ToolTip ><ToolTip Placement ="Right" FontSize="40" Foreground="Red"><TextBlock >按钮tooltip</TextBlock ></ToolTip ></Button.ToolTip ></Button >

设定显示时长:

 ToolTipService.ShowDuration="5000"

  Tooltip将显示5秒钟。

ToolTipService主要属性

ToolTipService.InitialShowDelay="1000"  //获取或设置工具提示打开前的时间长度

ToolTipService.ShowDuration="7000" //显示时间

ToolTipService.BetweenShowDelay="2000"//获取或设置两个工具提示显示之间的最大时间(第二个工具提示不经延迟即会出现)。

ToolTipService.Placement="Right"//工具提示相对原控件打开时的方向,并指定工具提示在与屏幕边界重叠时的行为。

ToolTipService.PlacementRectangle="50,0,0,0"//获取或设置相对于其来放置工具提示的矩形区域。

ToolTipService.HorizontalOffset="10"//获取或设置由 PlacementRectangle 和 PlacementTarget 属性为工具提示指定的区域的左侧偏移量。

ToolTipService.VerticalOffset="20"//获取或设置由 PlacementRectangle 和 PlacementTarget 属性为工具提示指定的区域的顶部距离。

ToolTipService.HasDropShadow="False"//获取或设置工具提示是否显示投影效果。

ToolTipService.IsEnabled="True"//获取或设置是否显示工具提示。

---------------------------------------------------------------------------

其它的知识点已经在之前讲解过,不懂得话参考以下链接阅读:

C# WPF框架Caliburn.Micro入门实例1

C# 项目实战(经典)

02


操作演示

03


结尾

项目源码网盘下载地址

链接:https://pan.baidu.com/s/1fMiqhFJiVfkDTzTAjjcvAQ

提取码:  右下角点击再看或者转发,超过20个以后我会在留言区公布!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/300147.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

双十一变身大型奥数竞赛现场?数学不好的你请转场

当微信又被淘宝“助力”刷屏&#xff0c;我们开始意识到它来了&#xff0c;它真的来了它今天真的来了&#xff01;令人闻风丧胆的双十一又双叒叕要到了&#xff01;从最开始的光棍节变成现在的购物节每年双十一的优惠难度堪比南孚电池一节更比一节强小木&#xff1a;阿里&#…

android菜单和对话栏,Android回顾--(十一) 菜单和对话框

选择菜单(OptionsMenu)第一种使用方式&#xff1a;在res目录下面建立一个名称是menu的文件夹在menu下面建立一个xml文件(默认就是menu的类型)在建立的这个xml文件夹中添加菜单的选项&#xff0c;xml文件中有很多属性android:orderInCategory "2" //表示当前的item在…

树莓派:3安装NodeJS

上一节记录有mysql的安装&#xff0c;这一节就主要记录nodejs的安装&#xff0c;最开始的时候我是想直接使用命令直接安装&#xff0c;如&#xff1a; sudo apt-get install nodejs结果发现安装不了&#xff0c;好像是数据源有问题。既然这样不行那么我就自己编译吧&#xff0c…

Exchange Server 2003邮件服务器系统的基本部署思路

<?xml:namespace prefix st1 ns "urn:schemas-microsoft-com:office:smarttags" />以下内容摘自笔者编著的《网管员必读——网络应用》&#xff08;第2版&#xff09;一书&#xff1a; 6.1.4 Exchange Server 2003邮件服务器系统的基本部署思路<?xml:n…

css两栏式布局示例

请先看图,这里主要用到了float属性,该属性的值指出了对象是否及如何浮动 语法&#xff1a; float : none | left |right 参数&#xff1a; none :  对象不浮动;left :  对象浮在左边;right :  对象浮在右边 请看代码,请CSS高手指教,其他还可以用position来实现两栏,只…

HttpClient 禁用自动重定向

HttpClient 禁用自动重定向Intro前段时间写了一个小工具来帮助我们简化一个每个月一次的小任务&#xff0c;每个月我们公司的 BI Team 会给我们上个月访问量比较高的博客文章的 url&#xff0c;然后我们会根据 BI 提供博客的 url 去找到对应的博客 id&#xff0c;然后更新到配置…

OpenAI“单手解魔方”被公开质疑,Gary Marcus称七大问题涉嫌误导

全世界只有3.14 % 的人关注了青少年数学之旅近日&#xff0c;“OpenAI的机器手在4分钟内单手成功还原魔方”引起刷屏&#xff0c;然而&#xff0c;这一成就被著名机器学习怀疑论者马库斯质疑了&#xff0c;马库斯逐条列举OpenAI的误导性说法&#xff0c;机器学习圈却都撑OpenAI…

android 带弧形背景,[Android日常]绘制弧形渐变背景

最近要修改用户空间头部信息显示&#xff0c;参考了好多APP的用户空间&#xff0c;都有一个弧形的背景&#xff0c;看着挺漂亮的。实现这种效果&#xff0c;有两种实现方式&#xff1a;1、作图&#xff1b;2、通过代码进行绘制。今天就讲讲如何通过canvas进行绘制。一、用到的知…

超强的绕口令

今天看到这样一个绕口令&#xff0c;自己读了半天&#xff0c;越读错的越多&#xff0c;呵呵&#xff0c;贴出来大家一起来玩玩1、初入江湖&#xff1a;化肥会挥发 2、小有名气&#xff1a;黑化肥发灰&#xff0c;灰化肥发黑 3、名动一方&#xff1a;黑化肥发灰会挥发&…

世界顶级精英们的人生哲学 【转】

1.别为你自己和别人下定论&#xff0c;你所看到听到的可能只是一面&#xff0c;为这个失去可能的朋友&#xff0c;很不值。 2.你可以有喝醉的时候&#xff0c;我们可以接受&#xff0c;但是你要明白和真正的朋友一醉才能让伤心事方休&#xff0c;否则&#xff0c;你只会是别人的…

记一次 .NET 某云采购平台API 挂死分析

一&#xff1a;背景 1. 讲故事大概有两个月没写博客了&#xff0c;关注我的朋友应该知道我最近都把精力花在了星球&#xff0c;这两个月时间也陆陆续续的有朋友求助如何分析dump&#xff0c;有些朋友太客气了&#xff0c;给了大大的红包&#xff0c;哈哈????&#xff0c;手…

来自女朋友的灵魂拷问!| 今日最佳

全世界只有3.14 % 的人关注了青少年数学之旅【1】【2】【3】【4】【5】【6】【7】【8】【9】

android 栏目编辑,android – 编辑文本导致内存泄漏

介绍&#xff1a;我有一个应用程序具有以下结构&#xff1a;ActionBar顶部(ActionBarSherlock)ViewPagerIndicator下面(对于选项卡)ViewPager(主机片段)我有一个问题,我的一个碎片导致了相当大的内存泄漏.我将问题缩小到以下情况&#xff1a;导致泄漏的片段只会在其onCreateVie…

Spring 事物传播特性

Spring 事物传播特性 这是Spring官方的定义 一共有7种 摘自源码省略了一部分 public interface TransactionDefinition {int PROPAGATION_REQUIRED 0;int PROPAGATION_SUPPORTS 1;int PROPAGATION_MANDATORY 2;int PROPAGATION_REQUIRES_NEW 3;int PROPAGATION_NOT_SUPPORT…

6月,回忆我失去的爱情

6月&#xff0c;夏天早已到来 自4月起&#xff0c;我一直放荡着。这个我在上个文章里已提到&#xff0c;哈哈 放荡两个月后&#xff0c;我回想我自己的爱情 我想明白为什么我会失去自己的爱情&#xff0c;哈哈 终于明白了是为什么&#xff0c;其实失去的这样的简单 我承认我有错…

《你必须知道的.NET》第1章学习笔记

面向对象中几个最基本的概念&#xff1a;类&#xff0c;对象&#xff0c;继承&#xff0c;封装和多态。 对象的出生&#xff0c;只是完成了对必要字段的初始化&#xff0c;其他数据要通过后面的操作来完成&#xff0c;如&#xff1a;属性的赋值&#xff0c;通过方法获取必要信息…

利用 PGO 提升 .NET 程序性能

引子.NET 6 开始初步引入 PGO。PGO 即 Profile Guided Optimization&#xff0c;通过收集运行时信息来指导 JIT 如何优化代码&#xff0c;相比以前没有 PGO 时可以做更多以前难以完成的优化。下面我们用 .NET 6 的 nightly build 版本 6.0.100-rc.1.21377.6 来试试新的 PGO。PG…

不作死就不会死,盘点那些死于自己发明的发明家

全世界只有3.14 %的人关注了青少年数学之旅还有他们死于自己的发明发明呼吸器&#xff1a;缺氧死亡 1772年&#xff0c;法国人希厄尔弗莱米奈特发明了可用于潜水的循环式再呼吸器&#xff0c;让呼出的气体实现循环。这是世界上第一个自持呼吸装置。不幸的是&#xff0c;弗莱米奈…

CIO们对数据中心虚拟化心存的六大疑虑

本文摘自&#xff1a;[url]http://industry.ccidnet.com/art/3915/20070428/1072803_1.html[/url] 巴塞罗那超级计算中心 数据中心虚拟化正在势不可挡地迅猛发展&#xff0c;据IDC预测&#xff0c;到2009年&#xff0c;虚拟化市场将在全球范围内将增长150亿美元。有专家预言&am…

启动Tomcat一闪而过解决

打开apache-tomcat-6.0.32/bing/catalina.bat在首行添加&#xff1a; set JAVA_HOMEC:\Program Files\Java\jdk1.6.0_07 就可以了。