在WPF中如何使用RelativeSource绑定

简介: 原文:在WPF中如何使用RelativeSource绑定在WPF绑定的时候,指定绑定源时,有一种办法是使用RelativeSource。 这种办法的意思是指当前元素和绑定源的位置关系。 第一种关系: Self 举一个最简单的例子:在一个StackPanel中,有一个TextBlock。
原文: 在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的背景色一样。

目录
相关文章
|
C# 数据库
WPF中DataGrid控件绑定数据源
WPF中DataGrid控件绑定数据源
447 0
|
C#
WPF更新绑定字段
WPF更新绑定字段
274 0
WPF—多重绑定和跨层级绑定
WPF—多重绑定和跨层级绑定
|
前端开发 C#
WPF 之 数据与命令绑定 (MVVM方式)
WPF 之 数据与命令绑定 (MVVM方式)
435 0
WPF 之 数据与命令绑定 (MVVM方式)
|
C# 前端开发
wpf中的datagrid绑定操作按钮是否显示或者隐藏
如图,需要在wpf中的datagrid的操作那列有个确认按钮,然后在某些条件下确认按钮可见,某些情况下不可见的,放在mvc里直接在cshtml页面中if..else就行了。 但是在wpf里不行。。网上搜索了好久才找到解决方法,原来只是binding那个visiable属性就行了,
7122 0
|
C#
WPF——TargetNullValue(如何在绑定空值显示默认字符)
原文:WPF——TargetNullValue(如何在绑定空值显示默认字符) 说明:在数据绑定时,如果有些字段为空值,那么在数据绑定时可以用默认值来显示为空的字段。   1 2 3 4 5 ...
1222 0
|
C# 数据格式 XML
WPF 资源(StaticResource 静态资源、DynamicResource 动态资源、添加二进制资源、绑定资源树)
原文:WPF 资源(StaticResource 静态资源、DynamicResource 动态资源、添加二进制资源、绑定资源树) 一、WPF对象级(Window对象)资源的定义与查找 实例一: StaticR...
9152 0
|
C# 数据安全/隐私保护 前端开发
[WPF]实现密码框的密码绑定
原文:[WPF]实现密码框的密码绑定                                                 [WPF]实现密码框的密码绑定                                                            周银辉 正如...
1183 0
|
C#
WPF使用HierarchicalDataTemplate绑定Dictionary生成TreeView
原文:WPF使用HierarchicalDataTemplate绑定Dictionary生成TreeViewDictionary中的CustomeType是一个集合,将其绑定生成一棵树,树的第一层节点是Dictionary的Key,第二层是CustomeType集合,所有代码用XAML实现。
1765 0
|
C# Windows
WPF Toolkit AutoCompleteBox 实体类绑定 关键字自定义关联搜索匹配
原文:WPF Toolkit AutoCompleteBox 实体类绑定 关键字自定义关联搜索匹配 WPF Toolkit AutoCompleteBox 实体类绑定 关键字自定义关联搜索匹配 网上的例子都是零散的   翻阅了 很多篇文章后 再根据 自己项目的实际需求  整理出一个完整的 应用例子...
1274 0