5 x 5 の正方形のタイルが貼られた Windows Phone 用のシンプルなボードゲームを作りたいと思っています。明らかに、タイルの幅と高さのプロパティがユーザーの電話の解像度に応じて設定される動的なインターフェイスが必要です。さらに言えば、私のXAML
コードでは * を使用してページ幅を 5 列 (相対サイズ) に分割し、各列には 5 つのボタンを追加するスタック パネルがあります。このような:
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<StackPanel x:Name="ButtonsCol0" Grid.Column="0">
<Button Background="AliceBlue"
MinWidth="{Binding ActualHeight, RelativeSource={RelativeSource Self}}"
MinHeight="{Binding ActualWidth, RelativeSource={RelativeSource Self}}">
</Button>
<Button
MinWidth="{Binding ActualHeight, RelativeSource={RelativeSource Self}}"
MinHeight="{Binding ActualWidth, RelativeSource={RelativeSource Self}}">
</Button>
<Button
MinWidth="{Binding ActualHeight, RelativeSource={RelativeSource Self}}"
MinHeight="{Binding ActualWidth, RelativeSource={RelativeSource Self}}">
</Button>
<Button
MinWidth="{Binding ActualHeight, RelativeSource={RelativeSource Self}}"
MinHeight="{Binding ActualWidth, RelativeSource={RelativeSource Self}}">
</Button>
<Button
MinWidth="{Binding ActualHeight, RelativeSource={RelativeSource Self}}"
MinHeight="{Binding ActualWidth, RelativeSource={RelativeSource Self}}">
</Button>
</StackPanel>
StackPanel
(各列に上記のものをさらに4つ持っています)
問題は、タイルを正方形(同じ高さと幅)にしたいということです。この質問を見つけたので、追加しました:
MinWidth="{Binding ActualHeight, RelativeSource={RelativeSource Self}}"
MinHeight="{Binding ActualWidth, RelativeSource={RelativeSource Self}}">
私のボタンでは、これは機能しているように見えますが、コードを実行すると、結果は次のようになります。
助けてください... :)