繁体   English   中英

Xaml:仅绑定左边距

[英]Xaml:Binding only left margin

我写了这段代码:

<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>
        ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM