stackpanel

WPF学习笔记

余生长醉 提交于 2021-02-20 07:37:12
笔记 布局控件 Canvas——该控件允许以任何合适的方式放置子控件。它不会对子控件的位置施加任何限制,但不会对位置摆放提供任何辅助。 DockPanel——该控件可让其中的子控件贴靠到自己四条边中的任意一边。最后一个子控件则可以充满剩余区域。 Grid——该控件让子控件的定位变得比较灵活。可将该控件的布局分为若干行和若干列,这样就可以在网格布局中对齐控件。 StackPanel——该控件能够按照水平方向或垂直方向依次对子控件进行排列。 WrapPanel——与StackPanel一样,该控件也能按照水平方向或垂直方向依次对子控件进行排列,但它不是按照一行或一列来排序,而是根据可用空间大小以多行多列的方式来排列。 标签 Window ResizeMode="CanResizeWithGrip" ResizeMode属性被设置为CanResizeWithGrip,这可以让窗口的右下角出现一个小手柄标志,让用户知道该窗口的大小是可以调整的。 Button <Button Content="_OK"/> OK文本前加下划线“_”即可为该按钮创建Alt+O快捷键 数据绑定 ObservableCollection 这个类的方法,对数据的操作很少,重点放在了当自己本事变化的时候(不管是属性,还是集合)会调用发出通知的事件。(一般用于更新UI) 来源: oschina 链接: https:/

change the children index of stackpanel in wpf [closed]

前提是你 提交于 2021-02-19 03:23:08
问题 It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help center. Closed 8 years ago . I want to know how I can change the children index of a StackPanel in c# code . For example, I want to make the child that is currently second to be displayed first. I need animation when changing the index. I am

WPF基础之元素绑定

久未见 提交于 2021-02-16 19:51:04
元素绑定 数据绑定最简单的形式是源对象是WPF元素而且源属性是依赖项属性。依赖项属性具有内置的更改通知支持。因此当源对象中改变依赖属性的值时,会立即更新目标对象中的绑定属性。 绑定表达式 当使用绑定表达式时,不必对源对象做任何改动,只需配置源对象使其属性具有正确的值范围。 <Slider Grid.Row= " 0 " Name= " sliderFontSize " Margin= " 3 " Minimum= " 1 " Maximum= " 40 " Value= " 10 " TickFrequency= " 1 " TickPlacement= " TopLeft " > </Slider> <TextBlock Grid.Row= " 1 " Margin= " 10 " Text= " Simple Text " Name= " lblSimpleText " FontSize = " {Binding ElementName=sliderFontSize,Path=Value} " > </TextBlock> 绑定错误 WPF不会引发异常来通知与数据绑定相关的问题。如果指定的元素或属性不存在,那么不会收到任何的指示;相反,只是不能在目标属性中显示数据。 调试可通过Visual Studio的OutPut窗口查看,WPF会输出绑定细节的跟踪信息。 绑定模式 名称

WPF 元素绑定

白昼怎懂夜的黑 提交于 2021-02-15 11:07:17
简单来说,数据绑定是一种关系,最简单的关系就是 源对象是WPF元素而且源属性是依赖项属性 绑定表达式 当使用数据绑定时,不必对源对象(如Slider控件)做任何改动,只需要配置源对象使其属性具有正确的值范围 < Slider Name ="SliderFontSize" Margin ="3" Minimum ="1" Maximum ="40" Value ="10" TickFrequency ="1" TickPlacement ="TopLeft" > </ Slider > < TextBlock Margin ="10,38,10,-18" Text ="Simple Text" Name ="lblSampleText" FontSize =" {Binding ElementName=SliderFontSize,Path=Value} " > </ TextBlock > 数据绑定表达式使用XAML标记扩展,以单词Binding开头,以上的代码设置了两个属性:ElementName属性(指示源元素)和Path属性(源元素中的属性) 之所以使用名称Path,是因为Path可能指向属性的属性(FontFamily.Source)也可能是指向属性使用的索引器(Content.Children[0])。可构建具有多层次的路径,使其指向属性的属性的属性。 绑定错误

【WPF学习】第三十二章 执行命令

眉间皱痕 提交于 2021-02-12 03:54:50
  前面章节已经对命令进行了深入分析,分析了基类和接口以及WPF提供的命令库。但尚未例举任何使用这些命令的例子。   如前所述,RoutedUICommand类没有任何硬编码的功能,而是只表达命令,为触发命令,需要有命令源(也可使用代码)。为响应命令,需要有命令绑定,命令绑定将执行转发给普遍的事件处理程序。 一、命令源   命令库中的命令始终可用。触发他们的最简单的方法是将它们关联到实现了ICommandSource接口的控件,其中包括继承自ButtonBase类的控件(Button和CheckBox等)、单独的ListBoxItem对象、HyperLink以及MenuItem。   ICommandSource接口定义了三个属性,如下表所示。 表 ICommandSource接口的属性   例如,下面的按钮使用Command属性连接到ApplicationCommands.New命令: < Button Command ="ApplicationCommands.New" > New </ Button >   WPF的智能程度足够高,它能查找前面介绍的所有5个命令容器类,这意味着可使用下面的缩写的形式: < Button Command ="New" > New </ Button >   然而,由于没有指明包含命令的类,这种语法不够明确、不够清晰。 二、命令绑定  

《深入浅出WPF》读书笔记

浪子不回头ぞ 提交于 2021-02-07 21:36:19
依赖属性: 节省实例对内存的开销; 属性值可以通过Binding依赖到其他对象上。 WPF中,依赖对象的概念被DependencyObject类实现,依赖属性被DependencyProperty类实现。 BindingOperations.SetBinding(stu,Student.NameProperty,binding); //绑定方式1 textBox1.SetBinding(); //绑定方式2(FrameworkElement类才有的方法) ------------------------------------------------------------------------------------------------- 路由事件 Windows是消息驱动的操作系统,运行在上面的程序也遵循这个机制运行。 CLR事件模型 :本质上是一个使用event修饰的委托实例;事件的拥有者就是事件的发送者(Sender) this.myButton.Click = new EventHandler(this.myButton.Click);/ /CLR事件模型中确定订阅关系的代码。 WPF路由事件模型 :路由事件的事件拥有者和事件响应者之间没有显式的订阅关系,事件的拥有者只负责激发事件,事件有谁响应他并不知道。事件的响应者则安装有事件检测器,针对某类事件进行监听

深入浅出WPF之控件与布局

拜拜、爱过 提交于 2021-01-16 06:31:56
WPF中的六大控件类型 1.布局控件:可以容纳多个控件或者其它布局控件,例如Grid,StackPanel,DockPanel,父类:Panel。 2.内容控件:只能容纳一个其它控件或者布局控件作为它的内容。Window,Button等控件属于此类。父类:ContentControl. 3.带标题内容控件:相当于一个内容控件,但可以加一个标题,标题部分也可以容纳一个控件或者一个布局控件。GroupBox,TabItem.父类:HeaderedContentControl. 4.条目控件:可以显示一列数据,它们的类型一般情况下相同。ListBox,ComboBox。父类:ItemsControl 5.带标题条目控件:相当于一个条目控件加上一个标题显示区。TreeViewItem,MenuItem都属于此类控件。父类:HeaderedItemsControl. 6.特殊内容控件:比如TextBox容纳的是字符串,TextBlock可以容纳可自由控制格式的文本Image容纳图片类型数据 UI布局 1.Grid:网格。可以自定义和列并通过行列的数量,行高和列宽来调整控件的布局,类似于HTML中的Table.适合的场景有: UI布局的大框架的设计,大量UI元素需要成行或者成列对齐的情况,UI整体尺寸发生变化时,元素需要保持固有的宽高比例。 2.StackPanel:栈式面板

[WPF 自定义控件]简单的表单布局控件

∥☆過路亽.° 提交于 2021-01-16 05:07:44
1. WPF布局一个表单 <Grid Width="400" HorizontalAlignment="Center" VerticalAlignment="Center"> <Grid.RowDefinitions> <RowDefinition Height="Auto" /> <RowDefinition Height="Auto" /> <RowDefinition Height="Auto" /> </Grid.RowDefinitions> <Grid.ColumnDefinitions> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="*" /> </Grid.ColumnDefinitions> <TextBlock Text="用户名" HorizontalAlignment="Right" VerticalAlignment="Center" Margin="4" /> <TextBox Grid.Column="1" Margin="4" /> <TextBlock Text="密码" HorizontalAlignment="Right" VerticalAlignment="Center" Margin="4" Grid.Row="1" /> <PasswordBox Grid.Row=

WPF MVVM

杀马特。学长 韩版系。学妹 提交于 2021-01-13 04:29:55
本篇从两个方面来讨论MVVM模式: MVVM理论知识 MVVM示例讲解 一,MVVM理论知识   从上一篇文章中,我们已经知道,WPF技术的主要特点是数据驱动UI,所以在使用WPF技术开发的过程中是以数据为核心的,WPF提供了数据绑定机制,当数据发生变化时,WPF会自动发出通知去更新UI。   我们使用模式,一般是想达到高内聚低耦合。在WPF开发中,经典的编程模式是MVVM,是为WPF量身定做的模式,该模式充分利用了WPF的数据绑定机制,最大限度地降低了Xmal文件和CS文件的耦合度,也就是UI显示和逻辑代码的耦合度,如需要更换界面时,逻辑代码修改很少,甚至不用修改。与WinForm开发相比,我们一般在后置代码中会使用控件的名字来操作控件的属性来更新UI,而在WPF中通常是通过数据绑定来更新UI;在响应用户操作上,WinForm是通过控件的事件来处理,而WPF可以使用命令绑定的方式来处理,耦合度将降低。   我们可以通过下图来直观的理解MVVM模式:     View就是用xaml实现的界面,负责与用户交互,接收用户输入,把数据展现给用户。   ViewModel,一个C#类,负责收集需要绑定的数据和命令,聚合Model对象,通过View类的DataContext属性绑定到View,同时也可以处理一些UI逻辑。   Model,就是系统中的对象,可包含属性和行为。   一般

练手WPF(二)——2048游戏的简易实现(上)

夙愿已清 提交于 2021-01-03 21:29:12
原文: 练手WPF(二)——2048游戏的简易实现(上) 1、创建游戏界面 编辑MainWindow.xaml,修改代码如下: < Window.Resources > < Style TargetType ="Label" > < Setter Property ="Height" Value ="105" /> < Setter Property ="Width" Value ="105" /> < Setter Property ="HorizontalContentAlignment" Value ="Center" /> < Setter Property ="VerticalContentAlignment" Value ="Center" /> < Setter Property ="FontWeight" Value ="Bold" /> < Setter Property ="Opacity" Value ="0.7" /> </ Style > < Style TargetType ="Rectangle" > < Setter Property ="Width" Value ="105" /> < Setter Property ="Height" Value ="105" /> < Setter Property ="Fill" Value ="