我有一个由以下 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"
)中执行此操作,还是需要在代码中绘制椭圆和线条?