【问题标题】:Inconsistency between XAML intellisense and compiler for a controlXAML 智能感知和控件编译器之间的不一致
【发布时间】: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”。

奇怪的是,如果我注释掉 &lt;somename:MyButton1 /&gt; 代码行并编译然后输入 &lt;somename: IntelliSense 会给我自动完成 MyButton1 的选项。这表明控件本身在程序集中,但由于某种原因,在编译 MyControl XAML 时看不到它。

在某些情况下,我获取了 SL csproj 文件并手动对其进行了一些修改以使其成为 WPF csproj 文件。如果这有可能导致这种奇怪的事情发生,我很乐意分享项目文件的相关部分。

【问题讨论】:

  • 我在 XAML 中看不到任何明显的东西,csproj 的相关部分是什么样的?奇怪的差异听起来像是由 csproj 问题引起的问题。

标签: wpf silverlight xaml intellisense


【解决方案1】:

在 MSDN 论坛上找到了答案。事实证明,我的 xmlns 中的 assembly=MyCompany.MyAssemblyName 行把事情搞砸了。删除该行后,我就可以引用控件了。

相关链接:http://social.msdn.microsoft.com/Forums/en/wpf/thread/807c9b80-81c7-4f75-aa2f-8427e17b1a90

【讨论】:

    【解决方案2】:

    要引用当前程序集,您不能键入它的名称,而是将其留空,即assembly=,另一个选择当然是完全删除它。 (MSDN -> Mapping to Current Assemblies)

    【讨论】:

      猜你喜欢
      • 2017-06-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-14
      相关资源
      最近更新 更多