2024-06-17 22:30:07
xaml源码:几个说明:(1)命名空间<Window ... >:
这是定义 WPF 窗口的根元素。
x:Class="WpfApp1.MainWindow":
这指示该 XAML 文件与名为 MainWindow 的类相关联,该类位于 WpfApp1 命名空间中。
这允许你在 C# 或其他 .NET 语言中编写与该窗口交互的代码。
xmlns 属...
2024-06-12 21:29:56
(一)Prism的区域引用上篇的代码ViewModel这段代码虽然能完成功能,但是有下面的缺点:1。 viewmodel里加入太多的控制代码,你Ui如果复杂点,会变成到处都是binding,造成viewmodel中的代码维护越来越复杂。2。Open中那个丑陋的switch,让人想到为啥它不是依赖注入呢? public class MainWindowViewModel : BindableBa...
2024-06-11 19:29:55
(一)安装Prism包,及vs的创建Prism项目模板安装nuget包: Prism.DryIoc安装Prism的项目模板:关闭VS,会继续安装。安装完成后,vs有了Prism的项目模板。我们选择创建Prism Full App(WPF), 在弹出来对话框中选择“DryIoc”容器,这个是默认值。还有一个可选容器是Unity。创建好的工程如下:在这些项目中,执行程序上FullApp1,用的是....
2024-06-11 13:54:30
Prism框架、MvvmLight和Microsoft.Toolkit.Mvvm(也称为CommunityToolkit.MVVM)都是用于支持WPF(Windows Presentation Foundation)中MVVM(Model-View-ViewModel)设计模式的框架。以下是关于这些框架的详细信息:Prism框架:来源:Prism框架并非直接由微软官方开发,但它得到了微软模式和实践...
2024-06-10 10:46:56
需求: 滑动条拖动,文本框值变化 文本框值变,滑动条值也变化实际上是一种控件双方绑定的需求。靠事件的实现: /// <summary>
/// MainWindow.xaml 的交互逻辑
/// </summary>
public partial class MainWindow : Window
{
publ...
2024-06-09 22:24:33
控件操作的反面例子如下:数据和UI混在一起。i是数据,却和UI操作写成一堆。 <ListBox x:Name="lbx1"/> for(int i=0;i<10;i++)
{
lbx1.Items.Add(new ListBoxItem()
{...
2024-06-09 19:05:42
(一)基本样式即使用Style属性来修饰元素的外观。注意几点: Stype如果不指定名字,则对全部按钮应用样式注意StaticResource myclass, 而不是StaticResource.myclass,否则会报错这个有点奇怪。<Window x:Class="WpfApp1.MainWindow"
xmlns="http://sch...
2023-01-13 21:51:33
勇哥注:此系列贴子服务于C# winform开发工程师,帮助他们快速了解wpf技术,节省大家的学习成本。因此,这个系列不是讲给初学者听的。我们知道winform是C#的标准ui框架,wpf则是另一种ui框架,随着.net Core的流行,它会是今后的主流选择,我们必须学习它。系列贴子导航:wpf快速了解(1)基础开发环境wpf快速了解(2)事件驱动和数据驱动wpf快速了解(3)MVVM模式,行为绑...
2023-01-12 20:55:28
勇哥注:此系列贴子服务于C# winform开发工程师,帮助他们快速了解wpf技术,节省大家的学习成本。因此,这个系列不是讲给初学者听的。我们知道winform是C#的标准ui框架,wpf则是另一种ui框架,随着.net Core的流行,它会是今后的主流选择,我们必须学习它。系列贴子导航:wpf快速了解(1)基础开发环境wpf快速了解(2)事件驱动和数据驱动wpf快速了解(3)MVVM模式,行为绑...
2023-01-11 21:20:39
勇哥注:此系列贴子服务于C# winform开发工程师,帮助他们快速了解wpf技术,节省大家的学习成本。因此,这个系列不是讲给初学者听的。我们知道winform是C#的标准ui框架,wpf则是另一种ui框架,随着.net Core的流行,它会是今后的主流选择,我们必须学习它。系列贴子导航:wpf快速了解(1)基础开发环境wpf快速了解(2)事件驱动和数据驱动wpf快速了解(3)MVVM模式,行为绑...
2023-01-10 20:51:29
勇哥注:此系列贴子服务于C# winform开发工程师,帮助他们快速了解wpf技术,节省大家的学习成本。因此,这个系列不是讲给初学者听的。我们知道winform是C#的标准ui框架,wpf则是另一种ui框架,随着.net Core的流行,它会是今后的主流选择,我们必须学习它。系列贴子导航:wpf快速了解(1)基础开发环境wpf快速了解(2)事件驱动和数据驱动wpf快速了解(3)MVVM模式,行为绑...
2023-01-09 21:43:02
勇哥注:此系列贴子服务于C# winform开发工程师,帮助他们快速了解wpf技术,节省大家的学习成本。因此,这个系列不是讲给初学者听的。我们知道winform是C#的标准ui框架,wpf则是另一种ui框架,随着.net Core的流行,它会是今后的主流选择,我们必须学习它。系列贴子导航:wpf快速了解(1)基础开发环境wpf快速了解(2)事件驱动和数据驱动wpf快速了解(3)MVVM模式,行为绑...
2022-12-08 22:55:14
x:Name 唯一地标识 XAML 定义的对象,以便于从代码隐藏或通用代码中访问对象图中实例化的对象。x:Name 一旦应用于支持编程模型,便可被视为与由构造函数返回的用于保存对象引用或实例的变量等效。x:Name 用来在XAML中表示一个指定对象的名称;可以通过他来访问XAML对应隐藏代码所关联的对象。Name 许多框架的类中都有Name这个属性,而在WPF中,x:Name和Name是可以互换的...
2022-12-05 22:52:01
Grid是Wpf布局控件中的最强功能者,废话不多说,开始。(一)3行3列,显示网格线代码:<Grid ShowGridLines="True">
<Grid.RowDefinitions>
<RowDefinition></RowDefinition>
<...
2022-11-29 23:33:37
布局的基本原则: a. 一个窗口中只能包含一个元素 b . 不应使用坐标设置元素的位置 c. 大多数情况不应显示定义元素尺寸 d. 支持多元素时, 可使用嵌套容器布局属性:HorizontalAlignment:用于设置子元素在容器中的水平位置。参数: Center、Left、Right、StretchVerticalAlignment:用于设置子元素在容器中的垂直位置...
2020-03-23 10:57:45
刚才完成了一项移植工作,趁着还没忘记,写点注意事项。首先目标wpf窗体非常复杂,很多控件,而且按钮是自动生成的,用了用户控件、模板、订制控件、资源、事件路由、handle等一大堆非普通写法,想把这些移植到winform上去似乎很困难,实际上简单的超乎想象,这里要感谢下微软,把能做的都已经做好了,wpf和winform几乎可以完美衔接。下面是简易步骤:1,建立一个wpf的usercontrol,将源...
2020-03-23 10:25:08
使用Grid面板可以很容易的将可用空间划分成单个单元格。使用行和列的定义,又很容易控制每行或每列占据多少空间。但是,如果你想让用户来改变这些该怎么办呢?这个时候GridSplitter就出场了。GridSplitter使用起来非常简单,把它加到Grid里的某一行或者某一列,再分配合适的空间如5个像素这样就可以了。它允许用户从左边到右边,从上到下进行拖拽,这样就改变了行或列的尺寸。来看例子:<...