【发布时间】:2012-03-02 01:16:19
【问题描述】:
我正在将一些 Silverlight XAML 转换为 WPF。我目前有一个用户控件 (MyControl),它试图包含几个其他控件,它们是同一程序集中的自定义按钮 (MyButton1)。我有以下在 SL 中编译和工作的 XAML:
我的按钮1
<UserControl
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
x:Class="MyCompany.MyNamespace.MySubnamespace.MyButton1"
d:DesignWidth="640" d:DesignHeight="480">
...
</UserControl>
我的控制
<UserControl
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:somename="clr-namespace:MyCompany.MyNamespace.MySubnamespace;assembly=MyCompany.MyAssemblyName"
mc:Ignorable="d"
x:Class="MyCompany.MyNamespace.MySubnamespace.MyControl"
d:DesignWidth="640" d:DesignHeight="480">
<somename:MyButton1 />
</UserControl>
当我尝试在 WPF 中编译此代码时,我收到以下错误:
XML 命名空间“clr-namespace:MyCompany.MyNamespace.MySubnamespace;assembly=MyCompany.MyAssemblyName”中不存在标记“MyButton1”。
奇怪的是,如果我注释掉 <somename:MyButton1 /> 代码行并编译然后输入 <somename: IntelliSense 会给我自动完成 MyButton1 的选项。这表明控件本身在程序集中,但由于某种原因,在编译 MyControl XAML 时看不到它。
在某些情况下,我获取了 SL csproj 文件并手动对其进行了一些修改以使其成为 WPF csproj 文件。如果这有可能导致这种奇怪的事情发生,我很乐意分享项目文件的相关部分。
【问题讨论】:
-
我在 XAML 中看不到任何明显的东西,csproj 的相关部分是什么样的?奇怪的差异听起来像是由 csproj 问题引起的问题。
标签: wpf silverlight xaml intellisense