1

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}}">

私のボタンでは、これは機能しているように見えますが、コードを実行すると、結果は次のようになります。

ここに画像の説明を入力

助けてください... :)

4

2 に答える 2