c# – WPF相当于Silverlight“RootVisual”
发布时间:2020-12-15 08:07:57 所属栏目:百科 来源:网络整理
导读:我正在尝试将应用程序从silverlight移植到wpf.不幸的是,我对两者都不熟悉.是否与 WPF中的以下Silverlight代码等效? private static Canvas GetCanvas() { var uc = Application.Current.RootVisual as UserControl; if (uc == null) { return null; } retur
我正在尝试将应用程序从silverlight移植到wpf.不幸的是,我对两者都不熟悉.是否与
WPF中的以下Silverlight代码等效?
private static Canvas GetCanvas() { var uc = Application.Current.RootVisual as UserControl; if (uc == null) { return null; } return uc.FindName("ChoiceCanvas") as Canvas; } 目前我正在使用 Application.Current.MainWindow.FindName("ChoiceCanvas") as Canvas; 但这不起作用,也许是因为ChoiceCanvas位于UserControl而不是MainWindow中? 解决方法
FindName不起作用,因为Canvas存在于UserControl的名称范围内,请尝试使用LogicalTreeHelper.
var canvas = LogicalTreeHelper.FindLogicalNode( Application.Current.MainWindow,"ChoiceCanvas") as Canvas; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |