自定义MediaElement

时间:2011-02-09 19:30:32

标签: c# inheritance mediaelement composition sealed

我目前正在创建的应用程序中使用一些MediaElements。我正在动态创建它们并将它们添加到包装面板中。

问题是我需要能够为它们添加一个键,以便我可以返回并找到一个特定的键。

我将继承MediaElement,只需将密钥添加为成员即可。不幸的是,我不能这样做,因为它是一个密封的类。

所以我尝试创建一个包含MediaElement和密钥的类,但我不能将其添加到GUI,因为它不是UIElement

反正我能做到吗?我只需要能够添加MediaElements,然后他们就可以返回并稍后找到它们,以便我可以修改或删除它们。

2 个答案:

答案 0 :(得分:3)

有这样的方式。 将Dictrionary <string, MediaElement>添加到您的表单中。添加新媒体元素时,也可以将其添加到字典中。 当您需要访问MediaElement时,您可以使用它的密钥名称从字典中查询它。您将在字典和GUI中同时获得对元素的引用。

从GUI删除时,不要忘记从字典中删除元素。

答案 1 :(得分:1)

使用字典处理它是一个好主意,但是当您从UI添加或删除媒体元素时,您必须保持其状态。 作为第二个选项,您还可以使用UserControl继承自定义类,并将mediaElement作为子项添加到其中。这样,您就可以使用密钥添加自己的类,并根据您自己的逻辑处理它