何をしようとしているのかわからないので、ここにいくつかの解決策があります。Grid
あなたが特にそれを求めたので、それらはすべて使用します。しかし、それが本当に適切であるとは確信していません。
あなたの問題は、Ellipse
サイズがによって決定されGrid
、アスペクト比を強制する制約がないことです。したがって、画面の解像度が異なるとアスペクトが変化するだけでなく、ウィンドウのサイズを変更するとアスペクトも変化します。
解決策 1: 楕円の幅と高さを設定する
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="257*" />
<RowDefinition Height="121*" />
<RowDefinition Height="442*" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="520*" />
<ColumnDefinition Width="121*" />
<ColumnDefinition Width="865*" />
</Grid.ColumnDefinitions>
<Ellipse Stroke="Black" Grid.Row="1" Grid.Column="1" Width="20" Height="20" />
</Grid>
解決策 2: グリッドで幅と高さを設定する
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="257*" />
<RowDefinition Height="20" />
<RowDefinition Height="442*" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="520*" />
<ColumnDefinition Width="20" />
<ColumnDefinition Width="865*" />
</Grid.ColumnDefinitions>
<Ellipse Stroke="Black" Grid.Row="1" Grid.Column="1" />
</Grid>
解決策 3: ViewBox を使用する
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="257*" />
<RowDefinition Height="121*" />
<RowDefinition Height="442*" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="520*" />
<ColumnDefinition Width="121*" />
<ColumnDefinition Width="865*" />
</Grid.ColumnDefinitions>
<Viewbox Grid.Row="1" Grid.Column="1">
<Ellipse Stroke="Black" Width="20" Height="20" />
</Viewbox>
</Grid>
解決策 4: 楕円の幅と高さを一緒にバインドする
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="257*" />
<RowDefinition Height="121*" />
<RowDefinition Height="442*" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="520*" />
<ColumnDefinition Width="121*" />
<ColumnDefinition Width="865*" />
</Grid.ColumnDefinitions>
<Ellipse x:Name="ellipse" Stroke="Black" Grid.Row="1" Grid.Column="1"
Height="{Binding RelativeSource={RelativeSource Self}, Path=ActualWidth}" />
</Grid>
違い
解決策 1 と 2 はどちらも、サイズが何であれ、円に一定のサイズを与えGrid
ます。
解決策 3 と 4 は、どちらもサイズに応じて円のサイズを変更しGrid
ます。
解決策 3 ではストロークの太さも変更されますが、解決策 4 では変更されません。
編集:解決策4を修正