控件被自动填充后,怎么获得控件大小?

新疆路游 2011-11-19 10:26:58
Grid中的内容为动态添加。
<Grid x:Name="Grid1"><!--这里动态添加内容--></Grid>

我使用Grid1.Width获得的是一个 Double.NaN 值。我想获得Grid1填充后的实际大小。
这个问题不知道怎么解决,遇到该问题朋友能否讲讲这是什么原因?
谢谢各位!
...全文
52 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zxh198841 2011-11-21
  • 打赏
  • 举报
回复
可能刚开始grid里面没有任何控件吧,你把Button放在控件里面,在试试
新疆路游 2011-11-21
  • 打赏
  • 举报
回复

private void button1_Click(object sender, RoutedEventArgs e)
{
Grid grid = new Grid();
grid.Width = 10;
grid.Height = 20;
grid1.Children.Add(grid);
grid1.SizeChanged += new SizeChangedEventHandler(grid1_SizeChanged);

}

void grid1_SizeChanged(object sender, SizeChangedEventArgs e)
{
MessageBox.Show(
"grid1.Width:" + grid1.Width + "\n" +
"grid1.Height:" + grid1.Height + "\n" +
"grid1.ActualWidth:" + grid1.ActualWidth + "\n" +
"grid1.ActualHeight:" + grid1.ActualHeight + "\n"
);
}


问题解决了,如上面的代码,还需要在触发一个SizeChanged事件。
查看资料:http://msdn.microsoft.com/zh-cn/library/system.windows.frameworkelement.actualwidth(v=VS.95).aspx
新疆路游 2011-11-21
  • 打赏
  • 举报
回复
XAML:

<Grid x:Name="LayoutRoot">
<Grid x:Name="grid1" HorizontalAlignment="Left" VerticalAlignment="Top" ></Grid>
<Button Content="Button" Height="23" HorizontalAlignment="Left" Margin="0,0,0,0" x:Name="button1" VerticalAlignment="Top" Width="75" Click="button1_Click" />
</Grid>

C#

private void button1_Click(object sender, RoutedEventArgs e)
{
Grid grid = new Grid();
grid.Width = 10;
grid.Height = 20;
grid1.Children.Add(grid);
MessageBox.Show(
"grid1.Width:" + grid1.Width + "\n" +
"grid1.Height:" + grid1.Height + "\n" +
"grid1.ActualWidth:" + grid1.ActualWidth + "\n" +
"grid1.ActualHeight:" + grid1.ActualHeight + "\n"
);
}


我第一次点击按钮的打印结果是:
grid1.Width:NaN
grid1.Height:NaN
grid1.ActualWidth:0
grid1.ActualHeight:0

我第二次点击按钮的打印结果是:
grid1.Width:NaN
grid1.Height:NaN
grid1.ActualWidth:10
grid1.ActualHeight:20

我第二次点击按钮的结果是正确的。为什么第一次不能得到正确的结果呢?
新疆路游 2011-11-21
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 zxh198841 的回复:]
this.grid.ActualHeight
this.grid.ActualWidth
[/Quote]
我好像试过这个属性。
我再试试看看。
zxh198841 2011-11-21
  • 打赏
  • 举报
回复
this.grid.ActualHeight
this.grid.ActualWidth

8,735

社区成员

发帖
与我相关
我的任务
社区描述
WPF/Silverlight相关讨论
社区管理员
  • WPF/Silverlight社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧