2009-12-14 2 views
2

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

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

ответ

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

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

Я закончил рисовать в моем файле с кодом, чтобы я мог выполнять некоторые вычисления для позиций, а не только в углу элементов. –

0

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

+0

Извините, я не указал - я не могу использовать шаблон, потому что хочу привязать начальную и конечную точки. Я хочу, чтобы линия была проведена между двумя произвольными элементами. –