1

各グリッドセルにボタンがあるSilverlightで単純な3x3グリッドを構築しようとしています。グリッドの定義は以下のとおりです。グリッドにボタンを追加すると、130x130グリッドセルがいっぱいになることはありません。ボタンの余白とパディングを0に設定し、ボタンの水平方向と垂直方向の配置をストレッチに設定しました。

    <Grid x:Name="Test" ShowGridLines="True" HorizontalAlignment="Center">
        <Grid.RowDefinitions>
            <RowDefinition Height="130"></RowDefinition>
            <RowDefinition Height="130"></RowDefinition>
            <RowDefinition Height="130"></RowDefinition>
            <RowDefinition Height="130"></RowDefinition>
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="130"></ColumnDefinition>
            <ColumnDefinition Width="130"></ColumnDefinition>
            <ColumnDefinition Width="130"></ColumnDefinition>
        </Grid.ColumnDefinitions>

    <Style x:Key="OperandButton" TargetType="Button">
        <Setter Property="BorderThickness" Value="1" />
        <Setter Property="Background" Value="{StaticResource PhoneAccentColor}" />
        <Setter Property="FontSize" Value="50" />
        <Setter Property="HorizontalAlignment" Value="Stretch" />
        <Setter Property="VerticalAlignment" Value="Stretch" />
    </Style>

 <Button Content="10" Style="{StaticResource OperandButton}" Grid.Row="0" Grid.Column="0" />
 <Button Content="3" Style="{StaticResource OperandButton}" Grid.Row="0" Grid.Column="1" />
 <Button Content="7" Style="{StaticResource OperandButton}" Grid.Row="0" Grid.Column="2" />
4

4 に答える 4

1

コードは正常に機能するはずです。このコードをそのまま試してください。

 <Grid x:Name="Test" ShowGridLines="True" HorizontalAlignment="Center" >
            <Grid.Resources>
                <Style x:Key="OperandButton" TargetType="Button">
                    <Setter Property="BorderThickness" Value="1" />
                    <Setter Property="Background" Value="Blue" />
                    <Setter Property="FontSize" Value="50" />
                    <Setter Property="HorizontalAlignment" Value="Stretch" />
                    <Setter Property="VerticalAlignment" Value="Stretch" />
                </Style>
            </Grid.Resources>
                <Grid.RowDefinitions>
            <RowDefinition Height="130"></RowDefinition>
            <RowDefinition Height="130"></RowDefinition>
            <RowDefinition Height="130"></RowDefinition>
            <RowDefinition Height="130"></RowDefinition>
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="200"></ColumnDefinition>
            <ColumnDefinition Width="130"></ColumnDefinition>
            <ColumnDefinition Width="130"></ColumnDefinition>
        </Grid.ColumnDefinitions>   
        <Button Content="10" Style="{StaticResource OperandButton}" Grid.Row="0" Grid.Column="0" />
        <Button Content="3" Style="{StaticResource OperandButton}" Grid.Row="0" Grid.Column="1" />
        <Button Content="7" Style="{StaticResource OperandButton}" Grid.Row="0" Grid.Column="2" />    
        </Grid>

それでも取得できない場合はお知らせください。

于 2012-07-18T22:53:58.953 に答える
0

ブレンドでテンプレートを見ると、問題が解決しました。次のプロパティが境界線に設定されました。

Margin="{StaticResource PhoneTouchTargetOverhang}"

これを0に設定すると、グリッドは完璧になりました。指導ありがとうございます。

于 2012-08-08T22:29:03.320 に答える
0

これを試してみてください。指定してはいけませんVerticalAlignmentOr HorizontalAlignment

Margin="-10"
于 2013-01-08T08:17:34.907 に答える
0

以下を試してください。

プロジェクトを Blend で開いたとき。ボタンを右クリックし、テンプレートの編集に移動し、現在の編集を行います。すべてのボタンにグリッドとコンテナーがあることがわかります。両方のサイズを等しくすると、デフォルトの境界線のサイズがボタンのサイズと同じになります。

同じテンプレートを他のボタンにも使用できます。

次に、ボタンをグリッドで囲みます。

于 2012-07-19T05:27:39.393 に答える