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 并且把总体的高度也设为原来的一半 能不能实现只显示第一个? 会不会再按照 百分比重新分配?
--------------------编程问答--------------------
<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#