小编Mat*_*art的帖子

由于XAML到.NET代码生成中的错误,此命名空间是否会发生冲突?

下面我将介绍如何重现我收到的错误.它在VS 2010,2012和2013中表现相同.如下所示,将其分解为多个项目非常重要.

重现错误的步骤:

  1. 创建解决方案.

  2. 创建一个名为Common的C#类库,其中包含一个名为Handler.cs的文件:

    using System;
    
    namespace Common
    {
        public delegate void Handler(object sender, EventArgs args);
    }
    
    Run Code Online (Sandbox Code Playgroud)
  3. 创建一个名为MyControlLibrary的WPF用户控件库项目,引用Common.在其中,创建一个名为MyControl.xaml的用户控件.

    MyControl.xaml:

    <UserControl x:Class="ControlNamespace.MyControl"
         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"
         mc:Ignorable="d"
         d:DesignHeight="300" d:DesignWidth="300">
        <Grid>
    
        </Grid>
    </UserControl>
    
    Run Code Online (Sandbox Code Playgroud)

    MyControl.xaml.cs:

    using System.Windows.Controls;
    using Common;
    
    namespace ControlNamespace
    {
        public partial class MyControl : UserControl
        {
            public MyControl()
            {
                InitializeComponent();
            }
    
            public event Handler MyEvent;
        }
    }
    
    Run Code Online (Sandbox Code Playgroud)
  4. 创建一个名为MyWpfApplication的WPF应用程序项目,引用Common和MyControlLibrary.在其中,创建WindowNamespace.Common.cs以及一个名为MyWindow.xaml的窗口.

    WindowNamespace.Common.cs:

    namespace WindowNamespace.Common
    {
    }
    
    Run Code Online (Sandbox Code Playgroud)

    MyWindow.xaml:

    <Window x:Class="WindowNamespace.MyWindow"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            xmlns:c="clr-namespace:ControlNamespace;assembly=WpfControlLibrary1"
            Title="MyWindow" Height="300" Width="300">
        <Grid>
            <c:MyControl MyEvent="MyControl_MyEvent" />
        </Grid>
    </Window>
    
    Run Code Online (Sandbox Code Playgroud)

    MyWindow.xaml.cs: …

.net c# wpf xaml namespaces

6
推荐指数
1
解决办法
808
查看次数

标签 统计

.net ×1

c# ×1

namespaces ×1

wpf ×1

xaml ×1