【问题标题】:Setting Grid border in WP7在 WP7 中设置网格边框
【发布时间】:2011-09-25 13:07:51
【问题描述】:

我正在尝试创建带边框的网格,但使用此代码,只有第一个单元格有边框:

<Grid Margin="24,96,24,288" d:LayoutOverrides="GridBox">
    <Grid.RowDefinitions>
        <RowDefinition Height="0.150*"/>
        <RowDefinition Height="0.150*"/>
        <RowDefinition Height="0.150*"/>
        <RowDefinition Height="0.150*"/>
        <RowDefinition Height="0.150*"/>
    </Grid.RowDefinitions>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="0.150*"/>
        <ColumnDefinition Width="0.150*"/>
        <ColumnDefinition Width="0.150*"/>
        <ColumnDefinition Width="0.150*"/>
        <ColumnDefinition Width="0.150*"/>
        <ColumnDefinition Width="0.150*"/>
        <ColumnDefinition Width="0.150*"/>
    </Grid.ColumnDefinitions>
    <Border BorderBrush="#FFFFFF" BorderThickness="1"/>
</Grid>

如何为所有单元格创建实线边框?

【问题讨论】:

    标签: xaml windows-phone-7


    【解决方案1】:

    将网格包装到Border

    <Border  BorderBrush="#FF0000" BorderThickness="5" Margin="24,96,24,288">
        <Grid>
           ....
        </Grid>
    </Border>
    

    您所做的方式是将边框元素 添加到 Grid-Control - 所以当然第一个单元格(如果您不设置 Grid.Row/Grid.Column 两者都将默认为0) 是用一个绘制的;)

    如果您想为每个单元格创建一个边框,那么您必须将每个内容包装到一个边框元素中,或者您必须为网格编辑模板。 作为另一种选择,您可以尝试为 Grid 设置样式(这是一个不错的 article) 这是来自该网站的另一个关于类似事情的问题:Styling a WPF layout grid background

    为了使这一点更清楚一点,为每个单元格获得(甚至)边框的最简单(如果不是最精致)的方法是真正为每个单元格和网格设置边界(在标记或代码中) -这是一个简化的例子:

    <Border BorderBrush="#FF0000" BorderThickness="2" Grid.Row="0" Grid.Column="0" Margin="24,96,24,288" >
        <Grid>
                <Grid.RowDefinitions>
                    <RowDefinition />
                    <RowDefinition />
                </Grid.RowDefinitions>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition />
                    <ColumnDefinition />
                </Grid.ColumnDefinitions>
    
                <Border BorderBrush="#FF0000" BorderThickness="2" Grid.Row="0" Grid.Column="0"/>
                <Border BorderBrush="#FF0000" BorderThickness="2" Grid.Row="0" Grid.Column="1"/>
                <Border BorderBrush="#FF0000" BorderThickness="2" Grid.Row="1" Grid.Column="0"/>
                <Border BorderBrush="#FF0000" BorderThickness="2" Grid.Row="1" Grid.Column="1"/>
        </Grid>
    </Border>
    

    【讨论】:

    • 其实我也试过了,但是也没用。
    • 网格周围的边界是什么? ...确定这没有在您的网格周围给您一个边框吗?
    • 对不起,我没有得到你的问题,但是这样它什么都没有。网格或单元格周围没有边框。
    • 可能是示例选择不当(复制了颜色和厚度的标记;))-我会稍微更改一下,这样您应该会看到效果,因为我猜您看不到小在这种情况下是白线...
    • 所以基本上你需要手动添加百万边界定义来完成这项工作,太棒了......感谢您的澄清!但是,决定使用画布。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-15
    • 1970-01-01
    • 2023-03-28
    • 2018-12-07
    相关资源
    最近更新 更多