如何在另一个XAML文件中引用Canvas?

时间:2009-01-27 14:10:28

标签: wpf vb.net xaml canvas

我在弄清楚如何在我的项目中引用另一个XAML文件中的Canvas时遇到了问题。

例如,有一个包含一些标签的Canvas对象,名为MyLayout的图像,存储在MyLayout.xaml中

我想在Window.xaml中的应用程序的主窗口中使用此Canvas。如何才能做到这一点?将需要将多个布局加载到窗口中。

所有XAML都在项目中并且编译后无法从文件中加载。

如何在Window.xaml中的MyLayout.xaml文件中引用Canvas对象?

这可以是XAML,VB.NET代码甚至是C#。

我已经搜索了几个小时试图解决这个问题。如何在另一个XAML文件中使用对象?这是怎么做到的?

提前致谢。我希望有人知道如何做到这一点。

2 个答案:

答案 0 :(得分:1)

您是否考虑过使用UserControl或ControlTemplate?

答案 1 :(得分:0)

由于Canvas对象实际上是Canvas的子类,因此在程序集中定义了该子类。您可以通过向根XAML对象添加另一个xmlns属性来引用在其他命名空间中定义的对象。

这样的事情(假设您的Canvas子类在MyCanvas命名空间中被称为MyNamespace):

<Window x:Class="MyNamespace.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="clr-namespace:MyNamespace">
    <local:MyCanvas />
</Window>

您可以像设置任何其他对象一样设置MyCanvas类的属性。