次のXAMLで定義されたカスタムUserControlがあります。
<Grid HorizontalAlignment="Left" VerticalAlignment="Top">
<Ellipse Height="100" Width="100" StrokeThickness="1" Stroke="Black" Fill="Transparent" Opacity="0.7" />
<Ellipse Height="98" Width="98" StrokeThickness="10" Stroke="White" Fill="Transparent" Opacity="0.5" />
<Ellipse Height="80" Width="80" StrokeThickness="1" Stroke="Black" Fill="Transparent" Opacity="0.7" />
<Line StrokeThickness="10" Stroke="Black" X1="33" Y1="33" X2="66" Y2="50" StrokeStartLineCap="Round" StrokeEndLineCap="Round" />
<Line StrokeThickness="10" Stroke="Black" X1="33" Y1="66" X2="66" Y2="50" StrokeStartLineCap="Round" StrokeEndLineCap="Round" />
</Grid>
ご覧のとおり、現在、固定の幅と高さで定義しています。このコントロールを別のXAMLファイルに配置するときに、この幅と高さを定義可能にします。例えば:
<Grid>
<MyCustomControl Width="100" Height="100" />
<MyCustomControl Width="75" Height="150" />
</Grid>
カスタムコントロールからこれらの値にバインドできることはわかっていますが、混乱しているのは、すべての計算を考慮して、小さい楕円と中央の線の位置を調整することです。
これをXAML(たとえばWidth="{Binding Width}-2"
)で実行できますか、それともコードで楕円と線を描画する必要がありますか?