Windows Phone 7,向面板添加按钮

时间:2011-09-23 11:14:08

标签: c# silverlight windows-phone-7

以下作品在silverlight中非常有效,

    <Grid x:Name="ContentPanelInner" Grid.Row="1" Margin="12,0,12,0">
        <StackPanel x:Name="stackPanelInner">
            <Grid VerticalAlignment="Top">
                <Grid.ColumnDefinitions>
                    <ColumnDefinition />
                    <ColumnDefinition />                        
                </Grid.ColumnDefinitions>

                <Button Grid.Column="0" Content="Ok" Width="100"/>
                <Button Grid.Column="1" Content="No" Width="100"/>
            </Grid>
        </StackPanel>
    </Grid>

它只是在同一行中添加了两个按钮。 当我尝试从C#做同样的事情时,它无法工作。

这是我的c#代码:

        Grid g1 = new Grid();
        //StackPanel innerSP = new StackPanel();
        ColumnDefinition cd1 = new ColumnDefinition();            
        ColumnDefinition cd2 = new ColumnDefinition();
        g1.ColumnDefinitions.Add(cd1);
        g1.ColumnDefinitions.Add(cd2);
        panel1.Children.Add(g1);
        Grid.SetColumn(buttonOk,0);
        Grid.SetColumn(buttonNo, 1);

        panel1.Children.Add(buttonOk);            
        panel1.Children.Add(buttonNo);           

        border.Child = panel1;

        // Set the Child property of Popup to the border 
        // which contains a stackpanel, textblock and button.
        p.Child = border;

有人可以告诉我出了什么问题吗?

1 个答案:

答案 0 :(得分:2)

改变这个:

Grid.SetColumn(buttonOk,0);
Grid.SetColumn(buttonNo, 1);

到此:

buttonOk.SetValue(Grid.ColumnProperty, 0);
buttonNo.SetValue(Grid.ColumnProperty, 1);

如果按钮应该在Grid列中(看起来很有意义),那么你也应该改变它:

panel1.Children.Add(buttonOk);
panel1.Children.Add(buttonNo);

到此:

g1.Children.Add(buttonOk);
g1.Children.Add(buttonNo);