WPF C# how to create THIS binding in code?

2019-07-04 12:45发布

问题:

I wonder, how to create this binding, since Line.X2 IS NOT dependency property! :(

<Line Y1="0" X1="0" Y2="0" Stroke="Blue" StrokeThickness="3" Margin="0 -2 0 -2" X2="{Binding Path=RenderSize.Width, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type StackPanel}}}"/>

回答1:

Line.X2 is a dependency property so you can do this in the normal way:

myLine.SetBinding(Line.X2Property,
  new Binding("RenderSize.Width")
  {
    RelativeSource = new RelativeSource(RelativeSourceMode.FindAncestor, typeof(StackPanel), 1)
  });