当前位置:编程学习 > C#/ASP.NET >>

silverlight 设定grid大小

                      <Grid x:Name ="RootElement" > 
                  
                        <Grid.RowDefinitions> 
                            <RowDefinition Height= "50%"/> 
                            <RowDefinition Height= "50%"/> 
                        </Grid.RowDefinitions> 
                        
                    </Grid> 
在xaml中这样设定可以么?  可是显示的却是  
                          <RowDefinition Height= "50"/> 
                            <RowDefinition Height= "50"/> 
而不是按百分比显示的  
如果我在代码中把第二个的高度设为0 并且把总体的高度也设为0  能不能实现只显示第一个? 会不会再按照 百分比重新分配? 

希望有高手帮忙解决下  先谢谢了  分不够可以加 --------------------编程问答-------------------- <Grid.RowDefinitions>
      <RowDefinition Height="0.5*" />
      <RowDefinition Height="0.5*" />
    </Grid.RowDefinitions> --------------------编程问答--------------------
如果我在代码中把第二个的高度设为0 并且把总体的高度也设为原来的一半  能不能实现只显示第一个? 会不会再按照 百分比重新分配? 
  --------------------编程问答--------------------
引用 2 楼 beijing__2008 的回复:
如果我在代码中把第二个的高度设为0 并且把总体的高度也设为原来的一半  能不能实现只显示第一个? 会不会再按照 百分比重新分配? 


<Grid.RowDefinitions> 
      <RowDefinition Height="*" /> 
      <RowDefinition Height="0" /> 
    </Grid.RowDefinitions>

只显示第一个,不按百分比

<Grid.RowDefinitions> 
      <RowDefinition Height="*" /> 
      <RowDefinition Height="Auto" /> 
    </Grid.RowDefinitions>

将动态计算百分比 --------------------编程问答-------------------- 我说的总体高度变成原来一半的功能是要在代码中实现的
已经设定成这样了<Grid.RowDefinitions> 
      <RowDefinition Height="0.5*" /> 
      <RowDefinition Height="0.5*" /> 
    </Grid.RowDefinitions>
想变成这样<Grid.RowDefinitions> 
      <RowDefinition Height="*" /> 
      <RowDefinition Height="0" /> 
    </Grid.RowDefinitions> (就是把第二行去掉,只显示第一行)
但是要在代码中实现  而且比率设定完了  即使你改了总体的高度为原来的一半 但它还是按照这个比率显示两行  而不是一行 --------------------编程问答-------------------- 我还真没搞懂你想干什么, 呵呵

<Grid>
<Grid.RowDefinitions>
      <RowDefinition x:Name="r0" Height="0.5*" />
      <RowDefinition x:Name="r1" Height="0.5*" />
    </Grid.RowDefinitions>
    <TextBox Grid.Row ="0" Margin="266,0,266,0" />
    <Button Grid.Row ="1" x:Name="bt">Enter</Button>
</Grid>

 void bt_Click(object sender, RoutedEventArgs e)
        {
            r1.Height = new GridLength(0);
        }

上面是你要的吗, 这样只一行了 --------------------编程问答-------------------- 即使你改了总体的高度为原来的一半 但它还是按照这个比率显示两行  而不是一行

你改变Grid 的Height, 并不能改变r0, r1, 因为它们是按比列显示, 各占50%, 要只显示一行, 可以将另一行的高度置0 --------------------编程问答-------------------- 和我想的一样的   可是<Grid showgridlines = "true"> 
<Grid.RowDefinitions> 
      <RowDefinition x:Name="r0" Height="0.5*" /> 
      <RowDefinition x:Name="r1" Height="0.5*" /> 
    </Grid.RowDefinitions> 
    <TextBox Grid.Row ="0" Margin="266,0,266,0" /> 
    <Button Grid.Row ="1" x:Name="bt">Enter </Button> 
</Grid> 
这样设置一下  你会发现这行线还在原来的位置上 
--------------------编程问答-------------------- 没有了啊, 我用wpf测试的 --------------------编程问答-------------------- 可是我在设置宽度的时候用的也是grid 放置一个togglebutton和一个textblock 当我把togglebutton的宽度设置成0的时候 
线还在原来的位置上 而且textblock 上的字还在原来的位置上  
--------------------编程问答-------------------- 晕死 你有没看清

void bt_Click(object sender, RoutedEventArgs e) 
        { 
            r1.Height = new GridLength(0); 
        } 
直接设置第二行的高度为0, 不是设置button的高度为0

<Grid.RowDefinitions> 
      <RowDefinition x:Name="r0" Height="*" /> 
      <RowDefinition x:Name="r1" Height="Auto" /> 
    </Grid.RowDefinitions> 
    <TextBox Grid.Row ="0" Margin="266,0,266,0" /> 
    <Button Grid.Row ="1" x:Name="bt">Enter </Button> 
</Grid> 

这样你可以直接设置Button的高度为0, 那么只剩下一行
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,