如何获取 UIElement 高宽

cfsjjjj 2010-08-12 05:25:02
UIElement ui=(UIElement)“<Canvas ....> .....</Canvas>”;
Canvas 没有设置高宽 Canvas中有许多元素(如:圆 矩形 等)

请问该这么获取 UIElement 的高宽!!!!顺便高手下UIElement 这么设置鼠标样式



谢谢!!!!!!!!!!
...全文
248 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
再度梦想 2010-08-13
  • 打赏
  • 举报
回复
UI 控件在加载后,它的ActualWidth是它的大小属性,但要注意这个属性在实例化之后是没有被付值的,只有在LOADED后才有
public WindowGIF()
{
InitializeComponent();
this.Loaded += new RoutedEventHandler(WindowGIF_Loaded);
}

void WindowGIF_Loaded(object sender, RoutedEventArgs e)
{
double _Width = this.ActualWidth;
}
jv9 2010-08-13
  • 打赏
  • 举报
回复
1楼说的没错,UIElement 需要被实例化,然后进行属性设置。

你也可以参考:
http://www.silverlightchina.net/html/tips/2010/0627/1342.html
mengKzhaoyun 2010-08-12
  • 打赏
  • 举报
回复
如果不指定Canvas的高和宽,一般Canvas会自动填充其父容器,如果Canvas的父容器为空,那么Canvas会自动填充浏览器。。。
未指定高宽的容器,可以在实例化以后再获取高和宽:如下。。。

public Shell()
{
InitializeComponent();
this.SizeChanged += new SizeChangedEventHandler(Shell_SizeChanged);
}

private void Shell_SizeChanged(object sender, SizeChangedEventArgs e)
{
if (this.Parent is FrameworkElement)
{
var parent = this.Parent as FrameworkElement;
if (parent == null) return;
this.Height = parent.ActualHeight;
this.Width = parent.ActualWidth;
}
}

8,735

社区成员

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

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