【问题标题】:Xaml:Binding only left marginXaml:仅绑定左边距
【发布时间】:2014-04-11 19:13:16
【问题描述】:

我已经写了这段代码:

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

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

【问题讨论】:

    标签: c# .net wpf xaml margin


    【解决方案1】:

    绑定只能应用于DependencyPropertyWhat is a dependency property?

    Thickness.Left 不是依赖属性,因此您必须绑定整个Margin 依赖属性)。要仅调整左边缘,您可以创建一个 ValueConverter,它采用 Width 并返回 Thickness。示例:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-11-21
      • 2019-04-20
      • 1970-01-01
      • 2022-01-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多