代码之家  ›  专栏  ›  技术社区  ›  Ravi

Xaml:仅绑定左边距

  •  1
  • Ravi  · 技术社区  · 12 年前

    我编写了以下代码:

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

    我只想绑定分隔符的左边缘,但这段代码给了我错误。 还有其他解决方案吗?

    1 回复  |  直到 12 年前
        1
  •  2
  •   Community Mohan Dere    9 年前

    绑定只能应用于 DependencyProperty : What is a dependency property?

    Thickness.Left 不是依赖属性,因此必须绑定整个 Margin (其中 是 依赖属性)。要仅调整左边缘,可以创建 ValueConverter 这需要 Width 并返回 Thickness 。示例:

    <Separator Margin="{Binding RelativeSource={RelativeSource AncestorType=Label},
                                Path=Width,
                                Converter={StaticResource MyLeftMarginConverter}}" >
        <Separator.LayoutTransform>
            ...
    
    推荐文章