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绑定相关推荐

  1. 【WPF】WPF通过RelativeSource绑定父控件的属性

    1.后台代码实现绑定父控件的属性 RelativeSource rs = new RelativeSource(RelativeSourceMode.FindAncestor); //设定为离自己控件 ...

  2. 在WPF中如何使用RelativeSource绑定

    在WPF中如何使用RelativeSource绑定 原文: 在WPF中如何使用RelativeSource绑定 在WPF绑定的时候,指定绑定源时,有一种办法是使用RelativeSource. 这种办 ...

  3. 《深入浅出WPF》笔记——绑定篇(一)

    上一节,有记录写到:在WPF里,数据驱动UI,数据占核心地位,UI次之.怎么恢复数据的核心地位,那就要先了解一下Binding. 一.Binding 基础 1.1WPF中Data Binding的带来 ...

  4. 背水一战 Windows 10 (19) - 绑定: TemplateBinding 绑定, 与 RelativeSource 绑定, 与 StaticResource 绑定...

    原文:背水一战 Windows 10 (19) - 绑定: TemplateBinding 绑定, 与 RelativeSource 绑定, 与 StaticResource 绑定 [源码下载] 背水 ...

  5. 重新想象 Windows 8 Store Apps (52) - 绑定: 与 Element Model Indexer Style RelativeSource 绑定, 以及绑定中的数据转换...

    重新想象 Windows 8 Store Apps (52) - 绑定: 与 Element Model Indexer Style RelativeSource 绑定, 以及绑定中的数据转换 原文: ...

  6. WPF 如何使用RelativeSource绑定

    当一个Binding有明确的数据来源时我们可以通过为Source或者ElementName赋值的办法让binding与之关联.有些时候我们不能确定作为Source的对象叫什么名字,但知道它与作为Bin ...

  7. WPF 如何使用RelativeSource绑定2

    我们进行Binding时,如果明确知道数据源的Name,就能用Source或者ElementName进行绑定,但是有时候我们需要绑定的数据源可能没有明确的Name,此时我们就需要利用Binding的R ...

  8. Wpf中通过绑定来更新textbox的值

    wpf中要动态的改变textbox的值需要通过绑定来实现,下面我就一步一步讲解如何绑定. 首先在MainWindow中定义了两个控件,一个button和一个textbox.并将这两个控件放在viewb ...

  9. Wpf之元素绑定元素属性

    wpf可以一个元素的属性,绑定给另外一个元素. 用法如下: <Grid Grid.Column="0" x:Name="CamResGrid">&l ...

最新文章

  1. Odoo 学习 【二】Environment 概览
  2. vue踩坑- 报错npm ERR! cb() never called!
  3. HIT训练营----1 题解
  4. 如何在 C# 中使用 RabbitMQ
  5. 物联网、车联网、工业互联网大数据平台,为什么推荐使用TDengine?
  6. 利用百度Echarts.js生成雷达图
  7. VC ++6.0英文版常用菜单使用参考【转载整理】
  8. python之父名言_Python之父:为什么操作符很有用?
  9. 全国青少年机器人技术等级考试标准 (三四级/arduino/mixly)
  10. 不同主机之间通过XDMCP协议通信(X-server和X-client不在同一主机)
  11. qq互联登录授权php配置,开通qq互联开放平台登陆功能的步骤
  12. 卫星导航信号结构变化的过去,现在和未来
  13. 计算机cad运行缓慢怎样处理,AutoCAD运行卡顿怎么办-AutoCAD运行卡顿的解决方法 - 河东软件园...
  14. C#叠加合并半透明图像的两种实现
  15. 水星mw325r设置无线服务器未响应,水星MW325R无线路由器上网的设置技巧
  16. 计算机方面的顶级会议
  17. JeeCms使用笔记
  18. Java项目:Springboot实现的一个简单博客管理系统
  19. Python机器学习06——朴素贝叶斯
  20. 系統封裝(6)--EZBOOT設置

热门文章

  1. CIS(企业形象识别系统)
  2. 不要让畸变毁了你的照片 - ACR/Lightroom基本校正
  3. Double和double的区别
  4. 紫光展锐 虎贲T610、T618安卓4g核心板 性能参数对比
  5. Tomcat配置虚拟主机
  6. 【团购】华章原创图书,任选2本6.8折优惠!免费快递,书到付款!
  7. 通过政府网站做高质量外链的方法
  8. 自信息、信息熵、互信息
  9. 【洛谷P3701】 「伪模板」主席树【网络流】
  10. XP下神奇缩略图的原因