日期:2014-05-17  浏览次数:20953 次

WPF,这几个绑定表达式都看不懂哦
在Blend工具中,设置ListBox的模板,包括设置滚动条等,于是,在XAML代码中,看到这些绑定表达式,一个都看不懂:

<ControlTemplate TargetType="{x:Type Thumb}">
<Rectangle x:Name="rectangle" Fill="{StaticResource ScrollBar.Static.Thumb}" Height="{TemplateBinding Height}" SnapsToDevicePixels="True" Width="{TemplateBinding Width}"/>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="true">
<Setter Property="Fill" TargetName="rectangle" Value="{StaticResource ScrollBar.MouseOver.Thumb}"/>
    </Trigger>
<Trigger Property="IsDragging" Value="true">
<Setter Property="Fill" TargetName="rectangle" Value="{StaticResource ScrollBar.Pressed.Thumb}"/>
   </Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>


Thumb部分的模板,有好几个绑定表达式都看不懂:
1:

<Rectangle x:Name="rectangle" Fill="{StaticResource ScrollBar.Static.Thumb}" ...

这个表达式什么意思啊,Fill属性绑定到什么东西啊?

2:


<Setter Property="Fill" TargetName="rectangle" Value="{StaticResource ScrollBar.MouseOver.Thumb}"/>

这句绑定表达式又是什么意思呢?

3:


<Setter Property="Fill" TargetName="rectangle" Value="{StaticResource ScrollBar.Pressed.Thumb}"/>


这句也看不懂?

------解决方案--------------------
1.定义一个rectangle,并设置其Fill属性,其Fill属性通过绑定来设置。Fill属性绑定到一个你定义好的静态资源,静态资源的x:key为ScrollBar.Static.Thumb。
2.触发器中的Settr,当触发器被触发时,用来设置rectangle(targetname)的Fill(property)属性。value,即要被设置的属性的新值,采用和问题1 中同样的设置方式。
3.问题3和问题2 是一样的,只不过在不同的触发器中。
------解决方案--------------------
绑定的都是内部的一些值,不过你可以根据需要更改你想要的绑定值,可以简单认为是对属性进行赋值
------解决方案--------------------
引用:
Quote: 引用:

1.定义一个rectangle,并设置其Fill属性,其Fill属性通过绑定来设置。Fill属性绑定到一个你定义好的静态资源,静态资源的x:key为ScrollBar.Static.Thumb。
2.触发器中的Settr,当触发器被触发时,用来设置rectangle(targetname)的Fill(property)属性。value,即要被设置的属性的新值,采用和问题1 中同样的设置方式。