为了账号安全,请及时绑定邮箱和手机立即绑定

如何在窗口内添加UserControl并分配x:Name

如何在窗口内添加UserControl并分配x:Name

C#
海绵宝宝撒 2021-03-29 17:18:59
首先,对不起我的英语,再对不起,我是初学者,也许我尝试做一些不可能的事情。我的目标是创建一个UserControl,以使用不同的参数在不同的Windows /页面/用户控件中重复使用代码。我开发了一个类来打印框以跟踪视频中的对象。好吧,我的问题是在编译时收到以下错误:名称“ mediaBoxes”在当前上下文中不存在如果我更改:<local:MediaBoxes x:Name="mediaBoxes"></local:MediaBoxes>代替<local:MediaBoxes Name="mediaBoxes"></local:MediaBoxes>我收到以下错误:类型名称MediaBoxes在类型MyModule中不存在如果删除属性Name并且不调用InitVideo,则所有代码都可以编译,并且可以完美执行。.但由于我需要初始化实例,因此播放器始终处于加载状态。
查看完整描述

2 回答

?
宝慕林4294392

TA贡献2021条经验 获得超8个赞

有些ui东西可以有一个名称,有些则不能。不过,您无需命名控件。

您的用户控件是一个框架元素,因此将具有标准事件。其中包括初始化和加载。您可以通过XAML将其中任何一个与事件处理程序挂钩。

 <local:MediaBoxes Initialized="MediaBoxes_Initialized"/>

如果键入initialized =,则可以接受它为您提供的存根事件处理程序。


查看完整回答
反对 回复 2021-04-17
?
手掌心

TA贡献1942条经验 获得超3个赞

您需要按照以下名称输入

<local:MediaBoxes x:Name="mediaBoxes"></local:MediaBoxes>

因为您的用户控件“ MediaBoxes”和“ Window”位于同一个命名空间(MyModule)中,所以如果您要编写以下内容

<local:MediaBoxes Name="mediaBoxes"></local:MediaBoxes>

你会得到以下错误

Because 'Microsoft.VisualStudio.DesignTools.Xaml.LanguageService.Semantics.Metadata.ReflectionTypeNode' is implemented in the same assembly, you must set the x:Name attribute rather than the Microsoft.VisualStudio.DesignTools.Xaml.LanguageService.Semantics.Metadata.ReflectionPropertyNode attribute.

因此,请按照以下方式为您的用户控件命名

<local:MediaBoxes x:Name="mediaBoxes"></local:MediaBoxes>

并在后面的代码中使用以下代码访问它

mediaBoxes.InitVideo(mainTask.SearchSelectedClips[0], _detection, _sdkEngine);


查看完整回答
反对 回复 2021-04-17
  • 2 回答
  • 0 关注
  • 206 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信