请教两个问题,都是和WPF的数据绑定相关的,求解答
一、在后台创建的控件,用代码进行数据绑定,无法实现的问题。
xaml中创建button1,建立按钮事件;后台窗口构造函数中创建button2和textblock,button2建立按钮事件。
在button1事件中把textblock的left坐标绑定到button1的left坐标,可以实现。
在button2事件中把textblock的left坐标绑定到button2的left坐标,无法实现。
非常困惑,求解。代码如下:
<Canvas x:Name ="canvas1">
<Button Canvas.Left="159" Canvas.Top="90" Content="Button" Height="23" Name="button1" Width="75" Click="button1_Click" />
</Canvas>
后台代码:
Button button2;
TextBlock textblock1;
public MainWindow()
{
InitializeComponent();
button2 = new Button();
Canvas.SetLeft(button2,(double)200);
Canvas.SetTop(button2,(double)200);
button2.Width = 50;
button2.Height = 25;
button2.Content = "button";
canvas1.Children.Add(button2);
button2.Click += new RoutedEventHandler(button2_Click);
textblock1 = new TextBlock();
textblock1.Text = "fdfdsfsd";
canvas1.Children.Add(textblock1);
}
private void button2_Click(object sender, RoutedEventArgs e)
{
textblock1.SetBinding(Canvas.LeftProperty, new Binding() { Path = new PropertyPath("Canvas.LeftProperty"), ElementName = "button2" });
}
private void button1_Click(object sender, RoutedEventArgs e)
{
textblock1.SetBinding(Canvas.LeftProperty, new Binding() { Path = new PropertyPath(Canvas.LeftProperty), ElementName = "button1" });
}
二、需要在后台代码中动态添加很多圆点和线。当添加两个圆点的时候,需要在这两个圆点之间连上线。
目标:在人员操作软件的时候,可以鼠标拖动圆点,同时线也可以同时移动。
所以,就需要把线的端点坐标绑定到两个圆点的圆心上。
假设,圆点是P1,P2,半径即圆点width的一半为r。所以绑定的时候端点left和top坐标就应该是对应圆点的left+r和top+r。
在line.setBinding 中将x1,y1,x2,y2分别绑定,怎么能把 圆点的 坐标 加上 r 赋给path呢??? 是不是没法做成表达式???
使用数据绑定的方法,如何实现?