读书人

WPF这几个绑定表达式都看不懂哦解决

发布时间: 2013-08-09 15:16:24 作者: rapoo

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 中同样的设置方式。


3.问题3和问题2 是一样的,只不过在不同的触发器中。



x:key为ScrollBar.Static.Thumb ?不会是字符串"ScrollBar.Static.Thumb"吧,代码中找遍了,都没找到这个key

你这些模板代码哪里来的?我也没代码,找找resource定义的地方。

读书人网 >C#

热点推荐