WPF学习之绑定用法

1.绑定到元素——ElementName

简单绑定写法:

Value="{Binding ElementName=slider,Path=Value,Mode=TwoWay}"
//ElementName:绑定源对象控件
//Path:绑定源对象控件的属性值
//Mode:绑定模式

双向绑定(Twoway):图片透明度与滑块的Value属性相互影响,一端改变时另一端也改变。

代码:

    <StackPanel>
        <Image Source="/images/dog.png" Opacity="{Binding ElementName=slider,Path=Value,Mode=TwoWay}" Height="416" Margin="10"/>
        <Slider x:Name="slider" Minimum="0" Maximum="1" Value="0.5"/>
    </StackPanel>

绑定更新:当目标属性发生变化时立刻更新源。(UpdateSourceTrigger)

UpdateSourceTrigger=PropertyChanged

绑定延迟:当目标属性发生变化时延迟更新源。(Delay)

Delay=5000(ms)

    <StackPanel>
        <Image Source="/images/dog.png" Opacity="{Binding Value, ElementName=slider,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged,Delay=5000}" Height="416" Margin="10"/>
        <Slider x:Name="slider" Minimum="0" Maximum="1" Value="0.5" Background="Black"/>
    </StackPanel>


2.绑定到非元素——Source

    <Window.Resources>
        <FontFamily x:Key="ff">micorsoft yahei</FontFamily>
    </Window.Resources>
  
    <StackPanel>
        <TextBlock Text="{Binding Source={x:Static SystemFonts.IconFontFamily},Path=Source}"/>
        <TextBlock Margin="0,10" Text="{Binding Source={StaticResource ff},Path=Source}"/>
    </StackPanel>
</Window>

3.绑定到非元素——RelativeSrouce

    <Grid Background="Blue">
        <TextBlock Height="50" Width="90" Background="{Binding Path=Background,RelativeSource={RelativeSource Mode=FindAncestor,AncestorType=Grid}}"/>
    </Grid>

4.绑定到非元素——DataContext(数据上下文)

//Window.Xaml.cs

namespace Chapter08
{
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
            //绑定到数据上下文
            this.DataContext = new student { Name = "小何", Age = 18 };
        }
    }

    class student
    {
        public string Name { get; set; }
        public int Age { get; set; }
    }
}
    //已经在窗体引用了数据上下文,可以直接binding,不需要source    
    <StackPanel>
        <TextBlock Text="{Binding Name}"/>
        <TextBlock Text="{Binding Age}"/>
    </StackPanel>

运行结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值