mg0*_*007 9 wpf binding thickness templatebinding
我想知道是否可以将像BorderThickness.Top这样的结构元素绑定到TemplatedParent的相应属性.我试过了
<Border Margin="0" Padding="{TemplateBinding Padding}" BorderBrush="{TemplateBinding BorderBrush}">
<Border.BorderThickness>
<Thickness Left="0" Right="0" Top="{TemplateBinding BorderThickness.Top}" Bottom="{TemplateBinding BorderThickness.Bottom}"/>
</Border.BorderThickness>
</Border>
Run Code Online (Sandbox Code Playgroud)
我想要这样做的原因是我希望左和右为0并且只有顶部和底部被绑定.
提前致谢.
Phi*_*ney 15
这是不可能的,因为Thickness是一个值类型 - 您只能在依赖项对象的依赖项属性上创建绑定.
您可以做的是正常绑定BorderThickness:
<Border Margin="0"
Padding="{TemplateBinding Padding}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness, Converter={StaticResource ThicknessConverter}}" />
Run Code Online (Sandbox Code Playgroud)
然后使用转换器返回适当修改的厚度:
object Convert( object value, Type targetType, object parameter, System.Globalization.CultureInfo culture )
{
var thickness = (Thickness) value;
return new Thickness( 0.0, thickness.Top, 0.0, thickness.Bottom );
}
Run Code Online (Sandbox Code Playgroud)
您甚至可以使用ConverterParameter指定要清除厚度的哪些部分.
| 归档时间: |
|
| 查看次数: |
5148 次 |
| 最近记录: |