跟我一起玩WPF-绑定模式

    在上篇博客中,小编已经跟大家说了,要一起来认识几个数据绑定的模式。为了保持整篇文章的收视率,小编才不会把它放在博客的前边~

 

正题正题

 

    继我上篇博客中通过滑动来改变字体的大小。我们继续延伸。秉持着全心全意为人民服务的理念,我们想到,是不是有的用户需要特定值,来避免每次滑动调节字体大小。

于是我又改了一下界面给它多了一个按钮,让按钮也能控制字体的大小。

为了简化整个界面我做成了如下的样子。

                           

 

xaml代码如下

<span style="font-family:KaiTi_GB2312;font-size:18px;"><Window x:Class="DataBinding.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="335">
    <Grid>
        <Slider Name="sliderFontSize" Margin="3" Minimum="1" Maximum="40" Value="10" TickFrequency="1" IsSnapToTickEnabled="True" TickPlacement="TopLeft"></Slider>
        <TextBlock Margin="60,60,60,160" FontSize="{Binding ElementName=sliderFontSize,Path=Value,Mode=OneWay}" Name="lblText" Text="示例"/>
        <StackPanel Orientation="Horizontal" >
            <Button Margin="55,110,0,100" Padding="15" Click="cmd_SetCommon">固定值</Button>
        </StackPanel>
    </Grid>

</Window>
</span>


 

   当然我们看到点击按钮也会触发一个这样的事件。需要写在类里面。按一下F7,写代码如下:

 

<span style="font-family:KaiTi_GB2312;font-size:18px;">  private void cmd_SetCommon(object sender, RoutedEventArgs e)
        {
            lblText.FontSize = 20;
        }
   </span>

 

    来我们先滑动一下滚动条,字体是跟着变化的。在点击一下按钮,发现字体也是和我们设想的一样进行了改变,但是当我们再次拖滚动条的时候,却发现它没有变化了。

 

    上面的代码直接设置文本框字体尺寸,因此滑动条的位置没有进行相应的更新。更糟的是,上面的代码破坏了字体尺寸绑定,并且使用了一个自面值代替了绑定。如果现在在移动滑动条上的滑块,文本根本不会相应的进行改变。

 

    这就涉及今天要跟大家说到的几个有趣的绑定方式:我们看到上面这种是单向绑定,也就是OneWay。下面认识一种双向的绑定:从源到目标已经从目标到源。技巧就是设置Binding对象的Mode 属性。来看一下变化。

 

    效果大家可以自己运行看一下,会发现我们点击按钮的时候,字体和滑动轮都会跟着变化。同样,滑动滑轮,字体也会变化了。 这就是双向绑定模式的应用。

 

此外,其他的几种模式也是非常的简单。列举一下属性,写需。

 

 

 

总结:

    通过这篇博客,主要也是让大家和我一起了解一下强大的封装,省去了我们很多用来写控制界面和界面逻辑的代码。越来越觉得WPF更像是一个工具。而它的各个语法也就是他的命令,我们只需要懂它可以实现什么,到时候再去查呗。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值