我有一个非常简单的WPF项目,包含一个Window和Usercontrol。我非常处于学习阶段。它运行时它工作正常。但是,我无法在设计时看到表格。问题,我认为与名称空间有关,但我不明白在哪里。这可能是一个简单的错误
主窗口XML
<Window
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:views="clr-namespace:UserLogin"
x:Class="UserLogin.MainView"
x:Name="MainViewWindow"
mc:Ignorable="d"
Title="Login"
Height="141"
Width="347"
>
<Grid>
<views:LoginView />
</Grid>
</Window>
主窗口CodeBehind
Imports Microsoft.VisualBasic
Imports System
Imports System.Windows
Imports UserLogin
Namespace UserLogin
Partial Public Class MainView
Inherits System.Windows.Window
Public Sub New()
InitializeComponent()
End Sub
End Class
End Namespace
Usercontrol XAML
<UserControl xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
x:Class="UserLogin.LoginView"
x:Name="LoginViewControl"
mc:Ignorable="d" d:DesignHeight="96" d:DesignWidth="298">
<Grid Height="96" Width="298">
<Button Command="{Binding OKCommand}" Height="21" Margin="0,0,90,16" Name="btnOK" VerticalAlignment="Bottom" HorizontalAlignment="Right" Width="76">OK</Button>
<Button Command="{Binding CancelCommand}" Height="21" HorizontalAlignment="Right" Margin="0,0,9,16" Name="btnCancel" VerticalAlignment="Bottom" Width="75">Cancel</Button>
<Label Height="23" HorizontalAlignment="Left" Margin="10,5,0,0" Name="Label1" VerticalAlignment="Top" Width="85">Name:</Label>
<Label HorizontalAlignment="Left" Margin="10,32,0,0" Name="Label2" Width="85" Height="29" VerticalAlignment="Top">Password:</Label>
<TextBox Margin="0,31,6,0" Name="txtPassword" Height="22" VerticalAlignment="Top" HorizontalAlignment="Right" Width="182" />
<ComboBox Height="22" Margin="110,6,6,0" Name="cboNames" VerticalAlignment="Top" />
</Grid>
</UserControl>
Usercontrol CodeBehind
Imports Microsoft.VisualBasic
Imports System
Imports UserLogin
Namespace UserLogin
Partial Public Class LoginView
Inherits System.Windows.Controls.UserControl
Public Sub New()
InitializeComponent()
End Sub
End Class
End Namespace
我想我错过了这个命名空间
xmlns:views="clr-namespace:UserLogin"
因为intellisense没有给我在XAML设计器中声明的usercontrol,而是报告错误“无法加载程序集的元数据等等”
任何建议的答案
西蒙
答案 0 :(得分:1)
我遇到了这个问题并弄明白了。我在设计器中遇到了错误,但在运行程序时却有效。在这种情况下,源代码位于网络驱动器上,并且该驱动器没有完全信任权限。我在本地移动了代码并开始工作。如果您希望将代码保留在网络驱动器上,也可以添加完全信任权限。
答案 1 :(得分:0)
这可能是一个愚蠢的问题,但您是否在创建控件后重建了项目? Visual Studio WPF编辑器在查找程序集方面非常挑剔,但“无法找到元数据”几乎总是意味着您所引用的程序集不存在。
每当你有一个奇怪的WPF设计器问题时,总是重建并可能重新启动VS。
答案 2 :(得分:0)
是同一程序集中的MainView和LoginView控件吗?如果没有,则需要在名称空间defn中包含程序集信息。