Добавить пользовательский элемент управления в окно wpf

У меня есть пользовательский элемент управления, который я создал, однако, когда я иду, чтобы добавить его в XAML в окне, Intellisense не поднимает его, и я не могу понять, как добавить его в окно.

Ответы на вопрос(4)

Пользовательский контроль WPF

<UserControl x:Class="App.ProcessView"
             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>

Пользовательский контроль C #

namespace App {
    /// <summary>
    /// Interaction logic for ProcessView.xaml
    /// </summary>
    public partial class ProcessView : UserControl // My custom User Control
    {
        public ProcessView()
        {
            InitializeComponent();
        }
    } }

MainWindow WPF

<Window x:Name="RootWindow" x:Class="App.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:app="clr-namespace:App"
        Title="Some Title" Height="350" Width="525" Closing="Window_Closing_1" Icon="bouncer.ico">
    <Window.Resources>
        <app:DateConverter x:Key="dateConverter"/>
    </Window.Resources>
    <Grid>
        <ListView x:Name="listView" >
            <ListView.ItemTemplate>
                <DataTemplate>
                    <app:ProcessView />
                </DataTemplate>
            </ListView.ItemTemplate>
        </ListView>
    </Grid>
</Window>

Во-первых, убедитесь, что в верхней части находится xmlns, включающий пространство имен, в котором находится ваш элемент управления.

xmlns:myControls="clr-namespace:YourCustomNamespace.Controls;assembly=YourAssemblyName"
<myControls:thecontrol/>

во-вторых, иногда интеллигентность глупа.

 07 июл. 2009 г., 18:47
+1 для "иногда глупый смысл". Убедитесь, что проект на самом деле не компилируется и не запускается, я потерял счет того, сколько раз VS говорил мне, что мой xmal недействителен, когда все, что ему нужно, - это перестройка, чтобы пересмотреть его.
Решение Вопроса

xmlns:controls="clr-namespace:YourCustomNamespace.Controls;assembly=YourAssemblyName"

(Когда вы добавляете xmlns: controls = & quot; intellisense должен включиться, чтобы облегчить эту задачу)

Затем вы можете добавить элемент управления с помощью:

<controls:CustomControlClassName ..... />
 16 июн. 2015 г., 01:15
Сейчас 2015, и дизайнер все еще не делает это автоматически?WTF!?!
 17 дек. 2015 г., 07:31
@MartinHarris Что я должен написать в & quot; yourassemblyname & quot ;?
 21 янв. 2016 г., 17:06
Очевидно, ваше имя сборки - это имя выходного файла (в основном, dll). Если выходной dll имеет имя awesome.assembly.dll, тогда & quot; yourassemblyname & quot; is & quot; awesome.assembly & quot ;.
 10 мар. 2017 г., 21:09
VS2017 теперь исправляет<CustomControlClassName предлагая лампочку, чтобы добавить пространство имен. :-)
 22 мая 2016 г., 05:32
Дизайнер VS2013 был более доволен сборкой, опущенной

Пространство имен:

<Window x:Class="UserControlTest.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="clr-namespace:UserControlTest"
    Title="User Control Test" Height="300" Width="300">
    <local:UserControl1 />
</Window>

Ваш ответ на вопрос