Привязать значение к абсолютной позиции элемента управления в XAML - PullRequest
2 голосов
/ 14 декабря 2009

Есть ли способ привязать значение к абсолютной позиции элемента управления с помощью XAML?

У меня есть элемент Line, который я хотел бы нарисовать между двумя Button с в моем приложении. Я думал, что привязка начальной точки Line к позиции Button будет самым простым способом сделать это, используя как-то RelativeSource.

Ответы [ 2 ]

2 голосов
/ 14 декабря 2009

Кажется, вы хотите что-то вроде этого:

<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 на своих страницах вместо кнопки

Edit: если вы хотите нарисовать линию между двумя элементами управления не используйте приведенный выше пример кода, но попробуйте прямо на своей странице:

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

Надеюсь, это поможет!

0 голосов
/ 14 декабря 2009

Определите шаблон с кнопкой и линией, расположенными в нужных местах, где вы хотите, а затем используйте этот шаблон вместо кнопки.

...