当WPF窗口无法识别同一项目中定义的用户控件时该怎么办?

时间:2009-01-20 14:14:11

标签: wpf user-controls c#-3.0 wpf-controls

我在XAML中有一个窗口“Operation”,它使用在同一个项目中定义的用户控件“Status”。当我构建解决方案时,它返回ok,但是当我打开Window的设计视图时,visual studio说“无法创建类型为'Status'的实例.Windows”操作“的XAML如下:

<Window x:Class="TCI.Indexer.UI.Operacao"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:tci="clr-namespace:TCI.Indexer.UI.Controles"
        Title=" "
        MinHeight="550"
        MinWidth="675"
        Loaded="Load"
        ResizeMode="NoResize"
        WindowStyle="None"
        WindowStartupLocation="CenterScreen"
        WindowState="Maximized"
        Focusable="True">
  <Canvas Name="canv">      
    <tci:Status x:Name="ucStatus"/>
    <Grid Canvas.Top="0" Canvas.Left="0">        
      <StackPanel Orientation="Horizontal">
        <!-- Indices -->
        <Label Width="200"/>        
      </StackPanel>
    </Grid>
  </Canvas>
</Window>

xmlns:tci是Status Usercontrol所在的命名空间。当发生此错误时,tci:Status会以蓝色加下划线。如何使用像这样的UserControl?

5 个答案:

答案 0 :(得分:2)

我的项目中一个控件一直遇到此问题,并通过将所有图片更改为DynamicResource而不是StaticResource来解决问题。

真正奇怪的是,设计师对控制本身的工作正常,并按预期显示图像。只有当我在主窗口中使用控件时,设计师才给我“无法创建实例”的消息。

答案 1 :(得分:1)

我不知道究竟是什么解决方案,但这种情况偶尔发生在我身上。我最终删除了命名空间的声明,重建并再次尝试。 :\

答案 2 :(得分:1)

尝试清理整个项目,然后进行完全重建。在我看来,VS中的WPF设计师做得不好,而且到处都有像这样的奇怪问题。

我建议不要依赖Design View做任何事情 - 此时它太不稳定了。试试Expression Blend,这样的事情会更好一些。如果你不想走那条路,你可能最好建立和运行你的应用程序: - (

如果你正在运行VS 2008,你安装了SP1吗?

答案 3 :(得分:1)

类似于Jon Norton所说的,我还发现这个链接( -link已删除,见下文 - )暗示了资源。我有链接中描述的情况,Jon的修复程序对其进行了排序。

修改

抱歉,该链接现在需要登录,页面不再存在。三年后我找不到它应该是什么。

答案 4 :(得分:0)

当我没有构建控件时,我通常会看到这一点。确保构建控件并查看是否仍然看到问题。偶尔,VS只会感到困惑,你需要关闭并打开你遇到问题的控件。在这种情况下,那将是你的窗口。