在上篇博客中,小编已经跟大家说了,要一起来认识几个数据绑定的模式。为了保持整篇文章的收视率,小编才不会把它放在博客的前边~
正题正题
继我上篇博客中通过滑动来改变字体的大小。我们继续延伸。秉持着全心全意为人民服务的理念,我们想到,是不是有的用户需要特定值,来避免每次滑动调节字体大小。
于是我又改了一下界面给它多了一个按钮,让按钮也能控制字体的大小。
为了简化整个界面我做成了如下的样子。
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更像是一个工具。而它的各个语法也就是他的命令,我们只需要懂它可以实现什么,到时候再去查呗。