2014-11-11 8 views
0

У меня есть сетка, которая имеет несколько строк и столбцов (показано ниже), и в каждой ячейке есть кнопка, очень похожая на калькулятор. Кнопки имеют значение HorizontalAlignment и VerticalAlignment, равное «Stretch» ​​Windows 8.1 xaml stretch does not shrink button

Однако из-за разных размеров экрана и моей потребности поддерживать равный размер ширины и высоты ячеек и элементов управления в них я дал ширины и высота как *

Я бы ожидал, что кнопки, таким образом, заполнит ячейку, в которой они находятся, но они не подходят. Вы можете видеть, что это скриншот из среды разработки. Первая кнопка показывает, где граница кнопки ... Они фактически вырываются сбоку и имеют край в верхней и нижней части около 8 пикселей.

Текст в каждой кнопке представляет собой одну цифру, поэтому я знаю, что размер текста не может быть проблемой и задавался вопросом, есть ли у кого-нибудь идеи? Я не хочу, чтобы вручную устанавливать поля для каждой кнопки, так как это не только много времени, но если приложение работает на экране другого размера, они могут поместиться.

 <Grid Grid.Row="2" x:Name="ButtonsGrid" Margin="18,9,18,0"> 
     <Grid.RowDefinitions> 
      <RowDefinition Height="*" /> 
      <RowDefinition Height="*" /> 
      <RowDefinition Height="*" /> 
     </Grid.RowDefinitions> 
     <Grid.ColumnDefinitions> 
      <ColumnDefinition Width="*" /> 
      <ColumnDefinition Width="*" /> 
      <ColumnDefinition Width="*" /> 
      <ColumnDefinition Width="*" /> 
     </Grid.ColumnDefinitions> 

     <Button Grid.Row="0" Grid.Column="0" Content="1" 
       HorizontalAlignment="Stretch" VerticalAlignment="Stretch" /> 
     <Button Grid.Row="0" Grid.Column="1" Content="2" 
       HorizontalAlignment="Stretch" VerticalAlignment="Stretch" /> 
     <Button Grid.Row="0" Grid.Column="2" Content="3" 
       HorizontalAlignment="Stretch" VerticalAlignment="Stretch" /> 
     <Button Grid.Row="0" Grid.Column="3" Content="4" 
       HorizontalAlignment="Stretch" VerticalAlignment="Stretch" /> 

     <Button Grid.Row="1" Grid.Column="0" Content="5" 
       HorizontalAlignment="Stretch" VerticalAlignment="Stretch" /> 
     <Button Grid.Row="1" Grid.Column="1" Content="6" 
       HorizontalAlignment="Stretch" VerticalAlignment="Stretch" /> 
     <Button Grid.Row="1" Grid.Column="2" Content="7" 
       HorizontalAlignment="Stretch" VerticalAlignment="Stretch" /> 
     <Button Grid.Row="1" Grid.Column="3" Content="8" 
       HorizontalAlignment="Stretch" VerticalAlignment="Stretch" /> 

     <Button Grid.Row="2" Grid.Column="0" Content="9" 
       HorizontalAlignment="Stretch" VerticalAlignment="Stretch" /> 
     <Button Grid.Row="2" Grid.Column="1" Content="0" 
       HorizontalAlignment="Stretch" VerticalAlignment="Stretch" /> 
     <Button Grid.Row="2" Grid.Column="2" Content="Clear" 
       HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Grid.ColumnSpan="2" /> 
    </Grid> 

Screen shot from development environment

ответ

1

Кнопка имеет определенные полей и отступов, поэтому она может уменьшить только до определенного размера.

Размер вашей ячейки меньше этого, вы можете обходным путем, отредактировав кнопку ControlTemplate.

0

Я никогда не делал приложение Windows Phone before.But я сделал этот образец в надежде выгоды Wpf.I для вашего бизнеса

Вот код:

<Grid Grid.Row="2" x:Name="ButtonsGrid"> 
    <Grid.Resources> 
     <Style TargetType="{x:Type Button}"> 
      <Setter Property="Margin" Value="2"/> 
      <Style.Triggers> 
       <Trigger Property="Tag" Value="btn_Login"> 
        <Setter Property="Margin" Value="10,5,10,5"/> 
       </Trigger> 
      </Style.Triggers> 
     </Style> 
    </Grid.Resources> 
    <Grid.RowDefinitions> 
     <RowDefinition Height="*" /> 
     <RowDefinition Height="*" /> 
     <RowDefinition Height="*" /> 
     <RowDefinition Height="*" /> 
    </Grid.RowDefinitions> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition Width="*" /> 
     <ColumnDefinition Width="*" /> 
     <ColumnDefinition Width="*" /> 
     <ColumnDefinition Width="*" /> 
    </Grid.ColumnDefinitions> 

    <Button Grid.Row="0" Grid.Column="0" Content="1" 
      HorizontalAlignment="Stretch" VerticalAlignment="Stretch" /> 
    <Button Grid.Row="0" Grid.Column="1" Content="2" 
      HorizontalAlignment="Stretch" VerticalAlignment="Stretch" /> 
    <Button Grid.Row="0" Grid.Column="2" Content="3" 
      HorizontalAlignment="Stretch" VerticalAlignment="Stretch" /> 
    <Button Grid.Row="0" Grid.Column="3" Content="4" 
      HorizontalAlignment="Stretch" VerticalAlignment="Stretch" /> 

    <Button Grid.Row="1" Grid.Column="0" Content="5" 
      HorizontalAlignment="Stretch" VerticalAlignment="Stretch" /> 
    <Button Grid.Row="1" Grid.Column="1" Content="6" 
      HorizontalAlignment="Stretch" VerticalAlignment="Stretch" /> 
    <Button Grid.Row="1" Grid.Column="2" Content="7" 
      HorizontalAlignment="Stretch" VerticalAlignment="Stretch" /> 
    <Button Grid.Row="1" Grid.Column="3" Content="8" 
      HorizontalAlignment="Stretch" VerticalAlignment="Stretch" /> 

    <Button Grid.Row="2" Grid.Column="0" Content="9" 
      HorizontalAlignment="Stretch" VerticalAlignment="Stretch" /> 
    <Button Grid.Row="2" Grid.Column="1" Content="0" 
      HorizontalAlignment="Stretch" VerticalAlignment="Stretch" /> 
    <Button Grid.Row="2" Grid.Column="2" Content="Clear" 
      HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Grid.ColumnSpan="2" /> 

    <Button Tag="btn_Login" Grid.Row="3" Content="Login" 
      HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Grid.ColumnSpan="4" /> 
</Grid> 

 Смежные вопросы

  • Нет связанных вопросов^_^