我的问题与其他问题Enforce Global Namespace in XAML截然不同,因为我没有一个与封闭名称空间同名的类,但我无法想到更合适的标题会区分这两者。
如果我的XAML对象命名空间的任何部分也是另一个命名空间的根,则Visual Studio似乎更喜欢我的XAML对象的命名空间,这表示为编译器错误。
以下是一个示例,说明 我的命名空间WpfApp1.System.Views
与global::System
发生冲突的部分:
<Window x:Class="WpfApp1.System.Views.MainWindow"
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"
Title="MainWindow" Height="350" Width="525">
<Grid>
<!-- Amazing content goes here -->
</Grid>
</Window>
“错误”窗格中显示了编译错误,obj/System/Views/MainWindow.g.i.cs
在System
的{{1}}部分下面显示了一条波浪形的红色下划线:
System.Windows.Window
显然,我的玩具示例仅阻止我在我的层次结构中的任何位置namespace WpfApp1.System.Views {
public partial class MainWindow : System.Windows.Window {
// ...
}
}
命名空间,但它也阻止我拥有任何第三方名称(例如System
如果我在XAML中使用其中一个第三方组件。
如果不重命名我自己的命名空间(或引用的组件&#39;命名空间),我可以要求Visual Studio在其生成的XAML代码中使用DevExpress
命名空间吗?