知识大全 XAML入门之附加属性和绑定属性
Posted 属性
篇首语:哪有什么四季,遇见你,四季如春。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 XAML入门之附加属性和绑定属性相关的知识,希望对你有一定的参考价值。
XAML入门之附加属性和绑定属性 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
有极少数的XAML元素存在下面所描述的情况 就是其自身的属性大多数情况下是在其它的元素中进行声明和使用的 该元素本身却很少使用这些属性 这些在其它元素中声明和使用的属性我们称为附加属性 一般来说 附加属性是用于在一个父元素定位其它元素布局的 就像Grid和DockPanel元素就包含附加属性 Grid使用附加属性来指定包含子元素的特定行和列 而DockPanel使用附加属性是来指定子元素应该停靠在面板中的何处位置 提示 我们可以在所有的由DependencyObject派生出的元素中设置附加属性 而DependencyObject又是由UIElement派生的 所以绝大多数的XAML元素都可以使用附加属性 我们说过附加属性是在另外一个元素中进行声明的 而其本身是属于所引用的元素 为此它在XAML中的声明语法为 属性提供元素名 属性名 例如 Grid有两个附加属性 Row和Column 如果我们要将某个元素包含在Grid的特定区域中 你可以在该元素中使用Grid Row和Grid Column两个属性附加属性指定确切的行和列 下面的代码描述了上述的实现 <Page xmlns= WindowTitle= GridSample > <Grid VerticalAlignment= Top HorizontalAlignment= Left ShowGridLines= True Width= Height= > <Grid ColumnDefinitions> <ColumnDefinition /> <ColumnDefinition /> <ColumnDefinition /> </Grid ColumnDefinitions> <Grid RowDefinitions> <RowDefinition /> <RowDefinition /> <RowDefinition /> <RowDefinition /> </Grid RowDefinitions> <TextBlock FontSize= FontWeight= Bold Grid ColumnSpan= Grid Row= > Products Shipped </TextBlock> <TextBlock FontSize= FontWeight= Bold Grid Row= Grid Column= > Quarter </TextBlock> <TextBlock FontSize= FontWeight= Bold Grid Row= Grid Column= > Quarter </TextBlock> <TextBlock FontSize= FontWeight= Bold Grid Row= Grid Column= > Quarter </TextBlock> <TextBlock Grid Row= Grid Column= > </TextBlock> <TextBlock Grid Row= Grid Column= > </TextBlock> <TextBlock Grid Row= Grid Column= > </TextBlock> <TextBlock FontSize= FontWeight= Bold Grid ColumnSpan= Grid Row= > Total Units: </TextBlock> </Grid> </Page> 最终的呈现效果如下绑定属性 在ASP NET中 我们通常使用<%# 数据表达式%>这样的语法创建服务器控件属性和数据源之间的绑定 那么要在WPF中创建一个XAML元素的属性和数据源之间的绑定应该怎么实现呢?为此我们引入了一种新的概念-绑定属性 我们可以在一个元素中使用绑定属性去引用原本属于其它元素的属性值 这个包含绑定属性的元素称为目标元素 而被引用的那个元素称为源元素 注意 绑定属性必须和目标元素的从属属性相关联 我们在目标元素中使用绑定属性来绑定源元素的相应属性值 如果源元素中的相应属性值在程序运行时发生了变化 那么目标元素中的从属属性的属性值也将做出同样改变 也就说绑定属性会自动解析所绑定的属性值是否发生了变化 并将发生的改变马上反馈到从属属性中 在学习C#时 我们通常会使用如下的代码来说明赋值的意义
int a = ; int b; b = a; 其中变量a就相当于我们上述的源元素那样 其值为 而变量b就相当于目标元素那样 通过语句 b=a 将值 绑定 到b 使得变量b的值现在也为 但是它和实际的WPF程序中的绑定语法不同的是 当a的值发生改变后 b的值是不会发生改变的 依然为 而WPF中的绑定语法会根据源元素的属性值改变做出同样的响应 这种关联是一直持续的 在XAML中是使用Binding关键字来维续它们的一致性 Binding元素的语法如下 <Binding ElementName[元素名]= … Path[属性名]= … /> 我们用Binding关键字来表明这是一个绑定表达式语法 使用这种语法的实现都会在运行阶段进行实时的解析 以获得源元素的当前值 在前面我们曾经创建了一个实例 就是你点击了多少次按钮 就会在按钮上的文本进行呈现 现在我们来使用绑定属性来扩展这个示例 我们可以为该页面添加一个TextBox元素 使得文本框中文本和一个TextBlock元素上的文本一致 也就是说将TextBox元素的Text属性和TextBlock元素的Text属性进行绑定 当你点击按钮时 就使得上述的两个文本信息同时发生变化 并且文本信息会显示改变的次数 <Window xmlns= xmlns:x= x:Class= SDKSample Window Width= Height= Title= BindDPtoDP > <DockPanel Background= White > <Button Click= btnChangeSource Width= Height= DockPanel Dock= Top >Change Source Property</Button> <TextBlock Name= Text DockPanel Dock= Top FontSize= Height= Foreground= Green > <TextBlock Text> Click the Button to Change this Initial Text Value in this Source Element </TextBlock Text> </TextBlock> <TextBox DockPanel Dock= Top Height= Foreground= Blue > <TextBox Text> <Binding ElementName= Text Path= Text /> </TextBox Text> </TextBox> </DockPanel> </Window> 在第 行代码处 可以看到我们在<TextBox Text>从属属性中使用了绑定表达式语法来绑定TextBlock元素的Text属性 对应的代码后置文件 using System; using System ComponentModel; using System Windows; using System Windows Controls; using System Windows Documents; using System Windows Data; using System Windows Media; namespace SDKSample /// <summary> /// Window : This is the class that encapsulates the code /// behind the Window Xaml page /// </summary> public partial class Window : Window static int iCount = ; void btnChangeSource(object sender RoutedEventArgs e) iCount++; Text Text = string Format( New Text Count= iCount); 效果下图所示 只要你点击按纽 TextBox元素的Text属性值和TextBlock元素的Text属性值都将发生变化 cha138/Article/program/net/201311/11493相关参考
知识大全 ASP.NET入门教程 1.7.8 属性窗口[2]
ASP.NET入门教程1.7.8属性窗口[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&nb
知识大全 ASP.NET入门教程 1.7.8 属性窗口[1]
ASP.NET入门教程1.7.8属性窗口[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&nb
知识大全 ASP.NET入门教程 5.1.1 style属性[2]
ASP.NET入门教程5.1.1style属性[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
知识大全 ASP.NET入门教程 5.1.1 style属性[1]
ASP.NET入门教程5.1.1style属性[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
知识大全 ASP.NET入门教程 7.3.1 数据源控件的基本属性[1]
ASP.NET入门教程7.3.1数据源控件的基本属性[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一
知识大全 ASP.NET入门教程 7.3.1 数据源控件的基本属性[2]
ASP.NET入门教程7.3.1数据源控件的基本属性[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一
知识大全 ASP.NET入门教程 7.3.1 数据源控件的基本属性[3]
ASP.NET入门教程7.3.1数据源控件的基本属性[3] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一
C#3.0之自动属性和对象初始化器 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!C#中定义属性更加
根据债的标的物的不同属性,债可分为_____。A、单一之债和多数人之债B、简单之债和选择之债C、主债和从债D、特定之债和种类之债答案:D解析:根据债的标的物的不同属性,债可划分为特定之债和种类之债。以
知识大全 《黑暗之魂3》BOSS属性弱点表一览 无名王者弱什么属性
《黑暗之魂3》BOSS属性弱点表一览无名王者弱什么属性 以下文字资料是由(本站网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!