将值绑定到控件在XAML中的绝对位置

时间:2009-12-14 14:52:55

标签: wpf xaml binding wpf-positioning

有没有办法使用XAML将值绑定到控件的绝对位置?

我有一个Line元素,我希望在我的应用程序中的两个Button之间绘制。我认为将Line的起点绑定到Button的位置是最简单的方法,以某种方式使用RelativeSource来实现这一点。

2 个答案:

答案 0 :(得分:2)

看起来你想要这样的东西:

<UserControl x:Class="PracticeSample.MyButton"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Grid>
    <Button x:Name="button" Content="Add" HorizontalAlignment="Center" VerticalAlignment="Top"/>
    <Line Stroke="Black" X1="0" Y1="0" HorizontalAlignment="Center" X2="{Binding ElementName=button, Path=ActualWidth}" Y2="{Binding ElementName=button, Path=ActualHeight}"/>
</Grid>

在您的网页中使用此MyButton代替Button,

编辑: 如果你想在两个控件之间画线 不要使用上面的代码示例,而是直接在您的页面中尝试:

<Canvas HorizontalAlignment="Left" Margin="10">
    <Button x:Name="button2" Content="Add" Canvas.Left="10" Canvas.Top="5"/>
    <Button Name="button" Content="Refresh Control" Canvas.Left="100" Canvas.Top="50"/>
    <Line Stroke="Black" X1="{Binding Path=(Canvas.Left),ElementName=button2}" Y1="{Binding Path=(Canvas.Top), ElementName=button2}" X2="{Binding (Canvas.Left), ElementName=button}" Y2="{Binding (Canvas.Top), ElementName=button}"/>
</Canvas>

希望这有帮助!

答案 1 :(得分:0)

定义一个模板,按钮和线条位于您喜欢的任何地方,然后在Button的位置使用此模板。