使用不可见边框创建网格

时间:2012-09-04 14:20:30

标签: windows-phone-7

我正在开发一款Windows手机应用程序。我需要创建一个3X3网格状结构。我希望边界最初是不可见的。当用户触摸边框时,它应该变得可见。请给我一些指导如何开始。我是windows phone框架的新手。此外,它可以在silverlight中完成还是我需要xna?

1 个答案:

答案 0 :(得分:0)

Silverlight很好。添加一个包含3列,3列和3列的网格

<Grid Name="grid">
    <Grid.ColumnDefinitions>
        <ColumnDefinition />
        <ColumnDefinition />
        <ColumnDefinition />
    </Grid.ColumnDefinitions>
    <Grid.RowDefinitions>
        <RowDefinition />
        <RowDefinition />
        <RowDefinition />
    </Grid.RowDefinitions>
</Grid>

然后将border元素添加到每一行*列,如下所示:

public MainPage()
    {
        InitializeComponent();
        var borders = new Border[3,3];
        var handler = new EventHandler<GestureEventArgs>(MainPage_Tap);
        for (int i = 0; i < 3; i++)
            for (int j = 0; j < 3; j++)
            {
                borders[i,j] = new Border()
                                {
                                    BorderThickness = new Thickness(4),
                                    Opacity = 0,
                                    BorderBrush = new SolidColorBrush(Colors.White)
                                };
                borders[i, j].Tap += handler;

                Grid.SetRow(borders[i,j], i);
                Grid.SetColumn(borders[i,j], j);
                grid.Children.Add(borders[i, j]);
            }
    }

    void MainPage_Tap(object sender, GestureEventArgs e)
    {
        var snd = sender as Border;
        snd.Opacity = 1;
    }     

我使用了一个边框数组,以便您以后可以轻松操作它们,但这并不是真正需要的。

编辑:如果您想在整个网格周围使用边框,请使用点击事件执行相同操作,但在XAML中设置边框

<Grid Name="grid">
    <Grid.ColumnDefinitions>
        <ColumnDefinition />
        <ColumnDefinition />
        <ColumnDefinition />
    </Grid.ColumnDefinitions>
    <Grid.RowDefinitions>
        <RowDefinition />
        <RowDefinition />
        <RowDefinition />
    </Grid.RowDefinitions>
    <Border Grid.RowSpan="3" Grid.ColumnSpan="3" Opacity="0" Tap="handler" />
</Grid>