猿问

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

首先,对不起我的英语,再对不起,我是初学者,也许我尝试做一些不可能的事情。

我的目标是创建一个UserControl,以使用不同的参数在不同的Windows /页面/用户控件中重复使用代码。我开发了一个类来打印框以跟踪视频中的对象。

好吧,我的问题是在编译时收到以下错误:

名称“ mediaBoxes”在当前上下文中不存在

如果我更改:

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

代替

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

我收到以下错误:

类型名称MediaBoxes在类型MyModule中不存在

如果删除属性Name并且不调用InitVideo,则所有代码都可以编译,并且可以完美执行。.但由于我需要初始化实例,因此播放器始终处于加载状态。


海绵宝宝撒
浏览 207回答 2
2回答

宝慕林4294392

有些ui东西可以有一个名称,有些则不能。不过,您无需命名控件。您的用户控件是一个框架元素,因此将具有标准事件。其中包括初始化和加载。您可以通过XAML将其中任何一个与事件处理程序挂钩。&nbsp;<local:MediaBoxes&nbsp;Initialized="MediaBoxes_Initialized"/>如果键入initialized =,则可以接受它为您提供的存根事件处理程序。

手掌心

您需要按照以下名称输入<local:MediaBoxes&nbsp;x:Name="mediaBoxes"></local:MediaBoxes>因为您的用户控件“ MediaBoxes”和“ Window”位于同一个命名空间(MyModule)中,所以如果您要编写以下内容<local:MediaBoxes&nbsp;Name="mediaBoxes"></local:MediaBoxes>你会得到以下错误Because&nbsp;'Microsoft.VisualStudio.DesignTools.Xaml.LanguageService.Semantics.Metadata.ReflectionTypeNode'&nbsp;is&nbsp;implemented&nbsp;in&nbsp;the&nbsp;same&nbsp;assembly,&nbsp;you&nbsp;must&nbsp;set&nbsp;the&nbsp;x:Name&nbsp;attribute&nbsp;rather&nbsp;than&nbsp;the&nbsp;Microsoft.VisualStudio.DesignTools.Xaml.LanguageService.Semantics.Metadata.ReflectionPropertyNode&nbsp;attribute.因此,请按照以下方式为您的用户控件命名<local:MediaBoxes&nbsp;x:Name="mediaBoxes"></local:MediaBoxes>并在后面的代码中使用以下代码访问它mediaBoxes.InitVideo(mainTask.SearchSelectedClips[0],&nbsp;_detection,&nbsp;_sdkEngine);
随时随地看视频慕课网APP
我要回答