只绑定左页边距
本文关键字:页边距 绑定 | 更新日期: 2023-09-27 17:49:01
我写了下面的代码:
<ControlTemplate TargetType="Label">
<Grid Height="30" Width="70" x:Name="grid">
<Border>
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"></ContentPresenter>
</Border>
<Separator>
<Separator.Margin>
<Thickness Left="{Binding Path=Width,RelativeSource={RelativeSource AncestorType=Label}}" Top="0" Right="0" Bottom="0"/>
</Separator.Margin>
<Separator.LayoutTransform>
<RotateTransform Angle='120'/>
</Separator.LayoutTransform>
</Separator>
</Grid>
</ControlTemplate>
我只想绑定分隔符的左边距,但是这段代码给了我错误。还有别的办法吗?
绑定只能应用于DependencyProperty
:什么是依赖属性?
Thickness.Left
不是一个依赖属性,所以你必须绑定整个Margin
(其中是一个依赖属性)。为了只调整左边缘,您可以创建一个ValueConverter
,它接受Width
并返回Thickness
。例子:
<Separator Margin="{Binding RelativeSource={RelativeSource AncestorType=Label},
Path=Width,
Converter={StaticResource MyLeftMarginConverter}}" >
<Separator.LayoutTransform>
...