WPF 使用RelativeSource绑定
WPF 使用RelativeSource绑定
在WPF绑定的时候,指定绑定源时,有一种办法是使用RelativeSource。
这种办法的意思是指当前元素和绑定源的位置关系。
第一种关系: Self
举一个最简单的例子:在一个StackPanel中,有一个TextBlock。
<TextBlock FontSize="18" FontWeight="Bold" Margin="10"
Background="Red" Width="80" Height="{Binding RelativeSource={RelativeSource Self},Path=Width}">MultiBinding Sample</TextBlock>
如果想让textbox的width和height相同,通过设置属性Height="{Binding RelativeSource={RelativeSource Self},Path=Width}" 就可以实现。
第二种关系:TemplatedParent
例如为一个Button写一个样式,修改Button为椭圆型。同时需要椭圆的背景色和Button的背景色相同。
<Style TargetType="{x:Type Button}"><Setter Property="Background" Value="Green"/><Setter Property="Template"><Setter.Value><ControlTemplate TargetType="{x:Type Button}"><Grid><Ellipse><Ellipse.Fill><SolidColorBrush Color="{Binding Path=Background.Color,RelativeSource={RelativeSource TemplatedParent}}"/></Ellipse.Fill></Ellipse></Grid></ControlTemplate></Setter.Value></Setter></Style>
在这个例子中 TemplateParent就是指的Button
第三种关系:AncestorType
指定绑定源为某个父元素
<Grid><Label Background = {Binding Path=Background, RelativeSource={RelativeSource AncestorType={x:Type Grid}}}/>
</Grid>
这个例子中Label的背景色和Grid的背景色一样。
WPF 使用RelativeSource绑定相关推荐
- 【WPF】WPF通过RelativeSource绑定父控件的属性
1.后台代码实现绑定父控件的属性 RelativeSource rs = new RelativeSource(RelativeSourceMode.FindAncestor); //设定为离自己控件 ...
- 在WPF中如何使用RelativeSource绑定
在WPF中如何使用RelativeSource绑定 原文: 在WPF中如何使用RelativeSource绑定 在WPF绑定的时候,指定绑定源时,有一种办法是使用RelativeSource. 这种办 ...
- 《深入浅出WPF》笔记——绑定篇(一)
上一节,有记录写到:在WPF里,数据驱动UI,数据占核心地位,UI次之.怎么恢复数据的核心地位,那就要先了解一下Binding. 一.Binding 基础 1.1WPF中Data Binding的带来 ...
- 背水一战 Windows 10 (19) - 绑定: TemplateBinding 绑定, 与 RelativeSource 绑定, 与 StaticResource 绑定...
原文:背水一战 Windows 10 (19) - 绑定: TemplateBinding 绑定, 与 RelativeSource 绑定, 与 StaticResource 绑定 [源码下载] 背水 ...
- 重新想象 Windows 8 Store Apps (52) - 绑定: 与 Element Model Indexer Style RelativeSource 绑定, 以及绑定中的数据转换...
重新想象 Windows 8 Store Apps (52) - 绑定: 与 Element Model Indexer Style RelativeSource 绑定, 以及绑定中的数据转换 原文: ...
- WPF 如何使用RelativeSource绑定
当一个Binding有明确的数据来源时我们可以通过为Source或者ElementName赋值的办法让binding与之关联.有些时候我们不能确定作为Source的对象叫什么名字,但知道它与作为Bin ...
- WPF 如何使用RelativeSource绑定2
我们进行Binding时,如果明确知道数据源的Name,就能用Source或者ElementName进行绑定,但是有时候我们需要绑定的数据源可能没有明确的Name,此时我们就需要利用Binding的R ...
- Wpf中通过绑定来更新textbox的值
wpf中要动态的改变textbox的值需要通过绑定来实现,下面我就一步一步讲解如何绑定. 首先在MainWindow中定义了两个控件,一个button和一个textbox.并将这两个控件放在viewb ...
- Wpf之元素绑定元素属性
wpf可以一个元素的属性,绑定给另外一个元素. 用法如下: <Grid Grid.Column="0" x:Name="CamResGrid">&l ...
最新文章
- Odoo 学习 【二】Environment 概览
- vue踩坑- 报错npm ERR! cb() never called!
- HIT训练营----1 题解
- 如何在 C# 中使用 RabbitMQ
- 物联网、车联网、工业互联网大数据平台,为什么推荐使用TDengine?
- 利用百度Echarts.js生成雷达图
- VC ++6.0英文版常用菜单使用参考【转载整理】
- python之父名言_Python之父:为什么操作符很有用?
- 全国青少年机器人技术等级考试标准 (三四级/arduino/mixly)
- 不同主机之间通过XDMCP协议通信(X-server和X-client不在同一主机)
- qq互联登录授权php配置,开通qq互联开放平台登陆功能的步骤
- 卫星导航信号结构变化的过去,现在和未来
- 计算机cad运行缓慢怎样处理,AutoCAD运行卡顿怎么办-AutoCAD运行卡顿的解决方法 - 河东软件园...
- C#叠加合并半透明图像的两种实现
- 水星mw325r设置无线服务器未响应,水星MW325R无线路由器上网的设置技巧
- 计算机方面的顶级会议
- JeeCms使用笔记
- Java项目:Springboot实现的一个简单博客管理系统
- Python机器学习06——朴素贝叶斯
- 系統封裝(6)--EZBOOT設置