XAML を使用して値をコントロールの絶対位置にバインドする方法はありますか?
Line
アプリケーションで 2 つの の間に描画したい要素がありますButton
。の開始点をLine
の位置にバインドすることが、何らかのButton
方法でこれを実現する最も簡単な方法になると考えていました。RelativeSource
XAML を使用して値をコントロールの絶対位置にバインドする方法はありますか?
Line
アプリケーションで 2 つの の間に描画したい要素がありますButton
。の開始点をLine
の位置にバインドすることが、何らかのButton
方法でこれを実現する最も簡単な方法になると考えていました。RelativeSource
次のようなものが欲しいようです:
<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 をページで使用します。
編集: 2 つのコントロールの間に線を引きたい場合は、上記のコード サンプルを使用せずに、ページで直接試してください。
<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>
お役に立てれば!
好きな場所にボタンとラインを配置したテンプレートを定義し、このテンプレートをボタンの場所で使用します。