WPF 引用静态资源里新建的对象异常

ObamaZhen 2019-02-26 10:35:43

XMAL代码
<Window.Resources>
<local:MenuMaker x:Key="menuMaker" x:Name="menuMaker1"/>
</Window.Resources>

在对应的底层C#代码中,无法找到menuMaker1这个对象。 UWP里可以不用key,WPF不用就报错。哪个大神知道这个情况给解释一些,每百度到相关资料。


在UWP里建的类似程序就可以。
XMAL代码
<Page.Resources>
<local:Student x:Name="student1"/>
</Page.Resources>
C#代码
public sealed partial class MainPage : Page
{
public MainPage()
{
this.InitializeComponent();

student1.Name = "";
}
}
...全文
159 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
exception92 2019-02-28
  • 打赏
  • 举报
回复
引用 2 楼 ObamaZhen 的回复:
[quote=引用 1 楼 exception92 的回复:]
因为放到了resources中,获取资源需要在后台进行Find查找。


按照你的思路,我尝试了一种能用的代码,请帮我看看,是不是你要表达的意思。我的程序最终目的是为了调用这个对象的函数。
xaml
<Window.Resources>
<local:MenuMaker x:Key="menuMaker" x:Name="menuMaker1"/>
</Window.Resources>
底层C#
public partial class MainWindow : Window
{
MenuMaker menuMaker2;

public MainWindow()
{
InitializeComponent();
}

private void ButtonNewMenu_Click(object sender, RoutedEventArgs e)
{
menuMaker2 = (MenuMaker)FindResource("menuMaker");
menuMaker2.UpdateMenu();
}
}[/quote]
是的,FindResource就是查找当前xaml中引用的资源的。
exception92 2019-02-27
  • 打赏
  • 举报
回复
因为放到了resources中,获取资源需要在后台进行Find查找。
ObamaZhen 2019-02-27
  • 打赏
  • 举报
回复
引用 1 楼 exception92 的回复:
因为放到了resources中,获取资源需要在后台进行Find查找。


按照你的思路,我尝试了一种能用的代码,请帮我看看,是不是你要表达的意思。我的程序最终目的是为了调用这个对象的函数。
xaml
<Window.Resources>
<local:MenuMaker x:Key="menuMaker" x:Name="menuMaker1"/>
</Window.Resources>
底层C#
public partial class MainWindow : Window
{
MenuMaker menuMaker2;

public MainWindow()
{
InitializeComponent();
}

private void ButtonNewMenu_Click(object sender, RoutedEventArgs e)
{
menuMaker2 = (MenuMaker)FindResource("menuMaker");
menuMaker2.UpdateMenu();
}
}

8,734

社区成员

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

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